ホームページ >バックエンド開発 >PHPチュートリアル >PHP はコンテンツ内の画像アドレスを持つリモート画像を自動的に収集し、ローカルに保存します_PHP チュートリアル

PHP はコンテンツ内の画像アドレスを持つリモート画像を自動的に収集し、ローカルに保存します_PHP チュートリアル

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

php は、コンテンツ内の画像アドレスを持つリモート画像を自動的に収集し、ローカルに保存します

function my_file_get_contents($url, $timeout=30) {
if ( function_exists('curl_init') )
{
$ch =curl_init() ;
curl_setopt($ch,curlopt_url,$url);
curl_setopt($ch,curlopt_returntransfer,1);
curl_setopt($ch,curlopt_connecttimeout,$timeout);
$file_contents =curl_exec($ch);
curl_close($ ch);
}
else if ( ini_get('allow_url_fopen') == 1 || strto lower(ini_get('allow_url_fopen')) == 'on' )
{
$file_contents = @file_get_contents($url);
}
else
{
$file_contents = '';
}
return $file_contents;
}


function get_remote($body,$title){

$img_array = array();
$img_path = realpath("../../../upfile/news/").'/'.date("y/m/d/") //リモート画像保存アドレスを収集
//die($img_path); ;
$img_rpath='/upfile/news/'.date("y/m/d/"); //アクセスアドレスを設定します
$body =tripslashes(strto lower($body));
preg_match_all("/( src |src)=["|'| ]{0,}(http://(.*).(gif|jpg|jpeg|png))/isu",$body,$img_array); array_unique ($img_array[2]);
foreach ($img_array as $key => $value) {
$get_file = my_file_get_contents($value,60);
$filetime = time(); " ymdhis",$filetime).rand(1,999).'.'.substr($value,-3,3);
if(empty($get_file)){
@sleep(10);
$get_file = my_file_get_contents ( $value,30);
if(empty($get_file)){
$body = preg_replace("/".addcslashes($value,"/")."/isu", '/notfound.jpg', $ body );
continue;
}
}
if(!empty($get_file) ){
if( mkdirs($img_path) )
{
$fp = fopen($img_path.$filename,"w");
if (fwrite($fp,$get_file)){ ($fp);
@sleep(6);
}
}

}
$body =str_replace(" return $body;

}

function mkdirs($dir)
{
if(!is_dir($dir)){
if(!mkdirs(dirname($dir))){

return false; }

if(!mkdir($dir,0777) ){
return false;}
}
return true;
}


$str ='fasfsdafsa';
echo get_remote($str,' Picture');

このサイトにオリジナルのチュートリアルを再投稿する場合は、ソースを示してください。これは、ファイル アップロード コードによって行われます。


http://www.bkjia.com/PHPjc/444916.html
www.bkjia.com

tru​​ehttp://www.bkjia.com/PHPjc/444916.html技術記事 PHP は、コンテンツ内の画像アドレスを持つリモート画像を自動的に収集し、ローカル関数 my_file_get_contents($url, $timeout=30){ if ( function_exists('curl_init') ) { $ch =curl_init();... に保存します。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。