ホームページ  >  記事  >  バックエンド開発  >  gd ライブラリの画像ダウンロード クラスは、Web ページ上のすべての画像をダウンロードするための PHP コードを実装します。

gd ライブラリの画像ダウンロード クラスは、Web ページ上のすべての画像をダウンロードするための PHP コードを実装します。

高洛峰
高洛峰オリジナル
2016-12-01 10:34:531090ブラウズ

PHP コードは次のとおりです:
コードをコピーします コードは次のとおりです:
header("Content-type:text/html ; charset=utf-8");
if (!empty($) _POST['submit']) ){
$url = $_POST['url'];
//相対パスで画像を取得する操作
$url_fields = parse_url($url); '];
$base_url = substr($url,0,strrpos($url, '/')+1);
//Web コンテンツを取得する
//プロキシ サーバーを設定する
$opts = array('http'=>) ;array(' request_fulluri'=>true));
$context = stream_context_create($opts);
$content = file_get_contents($url,false,$context);
// 一致する文字列をすべて保存しますarray$ は
$reg = "/gd ライブラリの画像ダウンロード クラスは、Web ページ上のすべての画像をダウンロードするための PHP コードを実装します。/i" と一致します
preg_match_all($reg, $content, $matches); count( $matches[0]);
for ($i=0; $i/*すべての画像の URL を小文字に変換します
*$matches[1][$i] = strto lower( $matches[1][$i]);
*/
//画像が相対パスの場合、フルパスに変換します
if (!strpos('a'.$matches[1][$ i], 'http' )){
//'/' は 0 番目の位置なので
if (strpos('a'.$matches[1][$i], '/')){
$matches[1 ][$i] = 'http://'.$main_url.$matches[1][$i];
}else{
$matches[1][$i] = $base_url.$matches[1][ $i];
}
}
}
//重複する画像をフィルタリングする
$img_arr = array_unique($matches[1]);
//画像ダウンロード クラスをインスタンス化する
$getImg = new DownImage(); count($img_arr );
for ($i=0; $i$getImg->source = $img_arr[$i];
$getImg->save_address = './ pic/';
$file = $getImg->down​​load();
}
echo "ダウンロードが完了しました!ハハ、シンプルにしてください! ";
}
class DownImage{
public $source;//リモート画像 URL
public $save_address;//ローカル アドレスを保存
public $set_extension; //画像拡張子を設定
public $quality; //画像 (0~100、100 が最適、デフォルトは約 75)
//ダウンロードメソッド (GD ライブラリイメージダウンロードを選択)
public function download(){
//リモート画像情報を取得
$info = @getimagesize ($this->source) ;
//画像拡張子を取得します
$mime = $info['mime'];
$type = substr(strrchr($mime, '/'),
//画像の種類ごとに異なる画像を選択する 関数の生成と保存
switch($type){
case 'jpeg':
$img_create_func = 'imagejpeg';
$new_img_ext = 'jpg'; image_quality = isset($this->quality) : 100;
$img_create_func = 'imagecreatefrompng';
$new_img_ext; 'png';
ケース 'bmp':
$img_save_func = 'imagebmp';
ケース 'gif'; _create_func = 'imagecreatefromgif';
$im g_save_func = 'imagegif';
case 'vnd.wap.wbmp':
$img_save_func wbmp';
$new_img_ext = 'bmp';
ケース 'xbm':
$img_save_func = 'xbm';
デフォルト:
$img_create_func = 'imagecreatefromjpeg' ;
$img_save_func = 'imagejpeg';
$new_img_ext = 'jpg';
//拡張子が設定されているかどうかに応じてローカルファイル名を合成します
if (isset($this->set_extension) ){
$ext = strrchr($this ->source,".");
$strlen = strlen($ext);
$newname =basename(substr($this->source,0,-$strlen) )).'.'.$new_img_ext;
}else{
$newname =basename($this->source)
}

//ローカル ファイル パスを生成
$save_address = $this->save_address.$新しい名前;
$img = @$img_create_func($this->source);
if (isset($image_quality)){
$save_img = @$img_save_func($img,$save_address,$image_quality);
$save_img = @$img_save_func($img ,$save_address)
}
$save_img を返す
}
}
?>
<フォームメソッド="POST" アクション=""> リモート URL アドレス: " name="submit" value="このページのすべての写真をダウンロード" />

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。