PHPでWEBページ内の画像ファイルを全て保存してみる
2016-06-06ページ内にある画像を全て保存したいけど いちいち右クリック>名前をつけて保存 とか画像をドラッグアンドドロップでフォルダに移動 とかするのが面倒なときに、対象ページのURLを渡せばページ内の画像を全て保存してくれる処理を考えてみました。
改良版を作りました
動作環境
・Mac OS X ・MAMP
ソース
ライブラリは使わずに、純粋にPHPだけです。
<?php
/**
* @param String $targetUrl
*/
function getAllImgByUrl( $targetUrl )
{
// 画像保存先
$savePath = '/Users/hogehoge/Desktop/savePath/'; //任意の場所
// htmlソース取得
$htmlSource = @file_get_contents( $targetUrl );
if ( $htmlSource )
{
// 画像ファイルのURL取得
preg_match_all( '/src="(.*?(\.jpg|\.jpeg|\.gif|\.png))"/i', $htmlSource, $res ); // (\.jpg|\.jpeg|\.gif|\.png) ここは必要に応じて変更
if ( isset( $res[ 1 ] ) )
{
foreach( $res[ 1 ] as $targetImgUrl )
{
// ファイル名生成
$fileNameTmp = explode( '/', $targetImgUrl );
$fileNameTmp = array_reverse( $fileNameTmp );
$fileName = $fileNameTmp[ 0 ];
// 画像保存
$imgData = @file_get_contents( $targetImgUrl );
if ( $imgData )
{
@file_put_contents( self::IMG_SAVE_PATH . $fileName, $imgData );
}
}
}
}
}
comments powered by Disqus