ホームページ  >  記事  >  バックエンド開発  >  php がリモート画像を取得してローカルに保存する_PHP チュートリアル

php がリモート画像を取得してローカルに保存する_PHP チュートリアル

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

PHP では、リモート サーバーからイメージやリソースを自動的に収集してローカル サーバーに直接保存できる、いくつかの単純な収集関数を作成することがよくあります。ここでは、リモート イメージをローカルに保存するいくつかの方法を詳しく紹介します。

例 1

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

/*
*機能: PHP には、リモート画像を完全にダウンロードしてローカルに保存する複数の方法があります
*パラメーター: ファイル URL、保存ファイル名, ダウンロード使用方法
※保存ファイル名が空の場合は元のリモートファイル名が使用されます
*/
function getImage($url,$filename='',$type=0){
if($url ==''){ return false;}
if($filename==''){
$ext=strrchr($url,'.');
if($ext!='.gif' && $ext! ='.jpg') {return false;}
$filename=time().$ext;
}
//ファイル保存パス
if($type){
$ch=curl_init();
$timeout=5 ;
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$img=curl_exec($ch);
curl_close($ ch);
}el se {St ob_start ();
$ img = ob_get_contents () EN (EN $filename,'a');
fwrite($fp2,$img) ;
fclose($fp2);
return $filename;
}




例 2

コードをコピーします

// 機能: リモート画像を取得してローカルに保存します////
//
// ローカルサーバーにファイルを書き込む権限があることを確認してください

//

//

// 変数の説明:
// $ url はリモート イメージの完全な URL アドレスであり、空にすることはできません。
// $filename はオプションの変数です。空の場合、ローカル ファイル名は時刻と日付に基づいて自動的に生成されます
//

function GrabImage($url,$filename="") {
if($url= =" "):return false;endif;

if($filename=="") {
$ext=strrchr($url,".");
if($ext!=".gif" && $ext != ".jpg"):return false;endif;

$filename=date("dMYHis").$ext;

}

ob_start();

readfile($url);
$img = ob_get_contents();
ob_end_clean ();
$size = strlen($img);

$fp2=@fopen($filename, "a");

fwrite($fp2,$img);
fclose($fp2);

return $ filename;
}


$img=GrabImage("http://www.bkjia.com","");
if($img):echo '

<img src="' .$ img.'">
';else:echo "false";endif;

?>



dedecms中的:

代码如下 复制代
if(!empty($saveremoteimg))
{
{
$body =tripslashes($body);
$img_array = array() ;
preg_match_all("/(src|SRC)=["|'| ]{0,}(http://(.*).(gif|jpg|jpeg|bmp|png))/isU",$body ,$img_array);
$img_array = array_unique($img_array[2]);
set_time_limit(0);
$imgUrl = $img_dir."/".strf time("%Y%m%d",time()) ;
$imgPath = $base_dir.$imgUrl;
$milliSecond = strftime("%H%M%S",time());
if(!is_dir($imgPath)) @ mkdir($imgPath,0777);
foreach($img_array as $key =>$value)
{
$value =rim($value);
$get_file = @file_get_contents($value);
$rndFileName = $imgPath."/".$milliSecond .$key.".".substr($value,-3,3);
$fileurl = $imgUrl."/".$milliSecond.$key.".".substr($value,-3,3) ; ($value,$fileurl,$body);
}
$body = まつげを追加します($body);
}
?>


例 4

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

//
// 機能: リモート画像を取得してローカルに保存します
//
//
// OK ローカルサーバーにファイルを書き込む権限があります
//
//
// 変数の説明:
// $url はリモートイメージの完全な URL アドレスであり、空にすることはできません。
// $filename はオプションの変数です。空の場合、ローカル ファイル名は時刻と日付に基づいて自動的に生成されます // .
function GrabImage($url,$filename='') {
if($url==) '') :return false;endif;
if($filename=='') {
$ext=strrchr($url,'.');
if($ext!='.gif' && $ext!= '.jpg '):return false;endif;$filename=date('dMYHis').$ext;
}
ob_start();
readfile($url);
$img = ob_get_contents();
ob_end_clean() ;
$ サイズ = strlen($img);
$fp2=@fopen($filename, 'a');
fwrite($fp2,$img);
fclose($fp2);
return $filename;
}
$img =GrabImage('http://www.ccc.cc/static/image/common/logo.png','');
if($img){echo '

<img src= '.$ img.'>
';}else{echo 'false';}
?>


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/444614.html技術記事 php では、リモート サーバーから写真やリソースを自動的に収集してローカル サーバーに直接保存できる簡単なコレクション関数を記述することがよくあります...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。