ホームページ  >  記事  >  バックエンド開発  >  PHP は記事内のリモート画像アドレスと定期的に一致し、画像を local_PHP チュートリアルにダウンロードします

PHP は記事内のリモート画像アドレスと定期的に一致し、画像を local_PHP チュートリアルにダウンロードします

WBOY
WBOYオリジナル
2016-07-20 11:12:21863ブラウズ

今日は、相手のWebサイトのコンテンツをダウンロードし、そのコンテンツ内の写真をローカルサーバーに保存するという簡単な収集プログラムを実行しています。ここでは、主にfile_get_contents関数を使用して写真をダウンロードする具体的な操作方法を紹介します。具体的な方法は以下の通り。


ここでは PHP 正規表現を使用して次のことを実現します:

コードは次のとおりです コードをコピーします
$content = 'ここに記事の内容があります。ここに画像を挿入してテストします';
$content = ストリップスラッシュ ( $content );
$img_array = array ();
/ / すべてのリモートに一致する Picture
preg_match_all ( "/(src|SRC)=["|'| ]{0,}(http://(.*).(gif|jpg|jpeg|bmp|png))/isU ", $content , $img_array );
// 一致する一意の画像
$img_array = array_unique ( $img_array [2] );
print_r($img_array);

リモート画像は上で一致します。それを保持する必要がありますここで 2 つの点に注意する必要があります:

1. 画像保存パス (画像保存ディレクトリ)

2. 画像アドレスへの実際のアクセス

以下は完全な例です: (ローカル サーバーに保存できます)テスト)

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





php はリモート画像をローカルに保存し、php は定期的に記事内の画像アドレスと一致します


//記事を保存 メディアとリモートの写真をローカルに転送
//作者: yanue;
// ファイル保存ディレクトリのパス (エコーしてもいいので、独自のパスに変更してください)
$save_path = $_SERVER ['DOCUMENT_ROOT'] . 'swfupload/attached/ ';
// ファイル保存ディレクトリ URL
$save_url = '/swfupload/attached/';
$save_path = realpath ( $save_path ) . / 画像保存ディレクトリ
$imgPath = $save_path . date ( "Ymd" );
$imgUrl = $save_url . date ( "Ymd" );

// フォルダー作成

if (! is_dir ( $imgPath )) {
@mkdir ( $imgPath, 0777 );
}
$content = 'これが記事の内容です。テストするためにここに画像を挿入してください';
$content =tripslashes ( $content );
$img_array = array ();
// すべてのリモート画像と一致
preg_match_all ( "/(src|SRC)=[ "|'| ]{0,}(http:// (.*).(gif|jpg|jpeg|bmp|png))/isU", $content, $img_array );
// 一致する一意の画像
$ img_array = array_unique ( $img_array [2] );
print_r($img_array);
//時間無制限
set_time_limit (0);
foreach ($img_array as $key => $value) {
$value = trim ( $value);
//リモート画像を読み取ります
$get_file = @file_get_contents ( $value );
// ローカル画像名に保存します
$imgname = date ( '_' ) . . "." . substr ( $value , - 3, 3 );
// ローカルに保存される実際のファイル アドレス (パスと名前を含む)
$fileName = $imgname;
//実際にアクセスしたアドレス
$fileurl = $imgUrl . "/" . $imgname;
// ファイル書き込み
if ($get_file) {
$fp = @fopen ( $fileName, "w" );
@fwrite ( $ fp, $get_file );
@fclose ( $fp );
}
// 元の画像アドレスを置き換えます
$content = ereg_replace ( $value, $fileurl, $content );
}
echo $content;
?> ;

< ;/html>


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/444581.html技術記事今日は相手のWebサイトのコンテンツをダウンロードし、コンテンツ内の写真をローカルサーバーに保存するという簡単な収集プログラムを行っています…
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。