ホームページ >バックエンド開発 >PHPチュートリアル >html および css の画像ファイルの PHP バッチ ダウンロードの例_PHP チュートリアル
PHP で画像をダウンロードする最初のステップでは、正規表現を使用して文字列内の画像アドレスを収集し、次に PHP 関連関数を使用して画像を直接読み取り、ローカル サーバーに保存して画像のバッチ ダウンロードを実現する必要があります。 。
最近とても忙しくて、リモートの写真をいくつかダウンロードする必要がありました。写真を 1 つずつ手動で保存するのは時間がかかりすぎるので、オンラインで検索しました。 PHP を見つけました。画像ファイルをバッチダウンロードする方法。原文は、PHP を使用して CSS ファイル内の画像をバッチダウンロードする方法に関する Ordinary World Blog の記事です。少し調べて書き直した後、それを使用できるようになり、はるかに便利で高速になります。
PHP バッチ ダウンロード画像ファイル コード:
コードは次のとおりです | コードをコピー |
set_time_limit(0); //PHP タイムアウトを設定します foreach($imagesURLArray as $imagesURL) { |
原理は非常に簡単で、画像アドレスを含む配列をループし、PHP の file_get_contents 関数を使用して画像を取得し、file_put_contents 関数を使用して画像を保存します。
追伸: PHP タイムアウトは必ず設定してください~!
元の記事の php を介して CSS で画像をダウンロードするためのコードを添付します:
コードは次のとおりです | コードをコピー |
/* //note PHP タイムアウトを設定する //note スタイルファイルの内容を取得します //note ダウンロードする必要がある URL アドレスと一致させてください //note ダウンロードする必要があるアドレスをループして、1 つずつダウンロードします |
その後、phpの一括ダウンロード画像ファイルを見つけました
Web サイトの画像保存方法が 1001 ~ 1999 であることがわかったとします。すべてのディレクトリには 1 から始まる .jpg 画像が保存されます (数量は異なります)。ここで、PHP を使用して、必要なスタイルに従って画像を直接保存することにします。 . ローカルにダウンロードします
画像の開始アドレスが http://image.xxx.com/img/1001/1.jpg の場合
この時、変数$idに1001、変数$num.jpgに1.jpgを入れ、保存するファイル名は$id_$num.jpg
まず、このファイルの実行ディレクトリの下に img という名前の書き込み可能なフォルダーを作成してください
コードは次のとおりです | コードをコピー |
$id= isset($_GET['id']) && intval($_GET['id']) && $_GET['id']>1000 ? $_GET['id'] : 1001; $num= isset($_GET['num']) && intval($_GET['num']) $_GET['num'] : 1; $url="http://image.xxx.com/img/{$id}/{$num}.jpg"; $array=get_headers($url,1); //$id を増やすか $num を増やすかを 200 と 400 を返して判断します if(preg_match('/200/',$array[0])){ $new_url="?id={$id}&num=".($num+1); ob_start(); 読み取りファイル($url); $img = ob_get_contents(); ob_end_clean(); $filename="./img/{$id}_{$num}.jpg"; $f=fopen($filename,'a'); fwrite($f,$img); fclose($f); }その他{ $new_url="?id=".($id+1)."&num=1"; } if($id > 1999) exit('すべて完了'); // 現在のステータスを表示します echo $url,' - ',$array[0],'<script>location.href="'.$new_url.'";</script>'; |