ホームページ  >  記事  >  バックエンド開発  >  PHP は Web ページの画像をバッチでダウンロードし、パスを local_PHP チュートリアルに置き換えます

PHP は Web ページの画像をバッチでダウンロードし、パスを local_PHP チュートリアルに置き換えます

WBOY
WBOYオリジナル
2016-07-13 16:57:541183ブラウズ

今度は、他の人の Web サイトにある写真付きのコンテンツを自分の Web サイトにコピーする必要があるため、他の人の Web サイトから写真をダウンロードしてローカルに保存し、コンテンツ内の写真アドレスをローカルのものに置き換える必要があります。ここで使用する必要があるのは、php には preg_match_all、file_get_contents、str_replace の 3 つの関数があります。


記事をコピーしたところ、画像パスが他の人の Web サイトからのものであることがわかりました。ワンクリックでこれらの画像をローカルエリアにダウンロードし、ローカルパスに変更するにはどうすればよいですか?

コードは次のとおりです コードをコピー
/**
*差し替え記事内の画像パスを取得します
* @param string $xstr content Webページのコンテンツを収集します
* @param string $keyword 作成した写真のファイル名をupimg
と書きます。 * @param string $oriweb URL、通常は null を書き込みます
* @戻り文字列
*
​*/
関数 replaceimg($xstr,$keyword, $oriweb){
$basedir = ディレクトリ名(__FILE__);

//パスを保存
$d = date('Ym', time());
$dirslsitss = $basedir.'/../uploads/'.$keyword.'/'.$d;//カテゴリが存在するかどうか
If(!is_dir($dirslsitss)) {
@mkdir($dirslsitss, 0777);
}

// 画像のsrcと一致します
Preg_match_all('#PHP は Web ページの画像をバッチでダウンロードし、パスを local_PHP チュートリアルに置き換えます
foreach($match[1] as $imgurl){

$imgurl = $imgurl;

If(is_int(strpos($imgurl, 'http'))){
$arcurl = $imgurl;
} else {
$arcurl = $oriweb.$imgurl; }
$img=file_get_contents($arcurl);


if(!empty($img)) {

//画像をサーバーに保存します
$fileimgname = time()."-".rand(1000,9999).".jpg";
$filecachs=$dirslsitss."/".$fileimgname;
$fanhuistr = file_put_contents( $filecachs, $img );
$saveimgfile = "/uploads/$keyword"."/".$d."/".$fileimgname;


$xstr=str_replace($imgurl,$saveimgfile,$xstr);
}
}
$xstr;
を返します }

http://www.bkjia.com/PHPjc/631508.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/631508.html技術記事他の人の Web サイトにある写真を含むコンテンツを自分の Web サイトにコピーする必要があるため、他の人の Web サイトから写真をダウンロードしてローカルに保存し、コンテンツ内の写真のアドレスを... に置き換える必要があります。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。