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

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

WBOY
WBOYオリジナル
2016-07-21 15:17:27712ブラウズ

PHPコードは次のとおりです:

コードをコピーします コードは次のとおりです:

header("Content-type:text/html ; charset=utf-8"); if (!empty($_POST ['submit'])){
$url = $_POST['url']
//相対パスで画像を取得する操作
$url_fields = parse_url($url); = $url_fields[ 'host'];
$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); 、すべて一致 文字列は配列に保存されます $matches
$reg = "//i";
preg_match_all($reg, $content , $matches);
$count = 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 ();
$ url_count = count($img_arr);
for ($i$getImg->source = $img_arr[$i]; >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);
return $save_img;
?>
リモート URL アドレス: フォーム


実行結果は図に示すとおりです:

gd库图片下载类实现下载网页所有图片この例では、ダウンロードした写真は現在のディレクトリの pic フォルダーに保存されます。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/325724.html技術記事 PHP コードは次のとおりです。 次のようにコードをコピーします。 ?php header("Content-type:text/html ; charset=utf-8") if (!empty($_POST['submit']){ $ url = $_POST ['url'] //相対パス画像を取得するには...
;
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。