ホームページ >バックエンド開発 >PHPチュートリアル >リモート画像を取得して保存するPHP実装方法_PHPチュートリアル
以下はソースコードとその関連説明です
//URL は完全なリモート画像アドレスであり、空にすることはできません。$filename は保存された画像の名前です
//デフォルトでは、画像はこのスクリプトと同じディレクトリに配置されます
function GrabImage ($url, $filename=""){
//$url が空の場合は false を返します
if($url == ""){return false;}
$ext = strrchr($url, "." );//画像拡張子を取得
if($ext != ".gif" && $ext != ".jpg" && $ext != ".bmp"){echo "サポートされていない形式!";return false;}
if( $filename == ""){$filename = time()."$ext";}//タイムスタンプを使用して名前を変更します
//キャプチャを開始します
ob_start();
readfile($url); ob_get_contents ();
$size = strlen($img);
fwrite($fp2, $img);
return $filename
}
//テスト
GrabImage("http://www.66xing.com/UploadFile/200609082320515027.bmp", "as.gif");
関連説明:
ob_start : 出力バッファリングをオンにする
// readfile : ファイルを読み取り、出力バッファーに書き込みます。 ファイルから読み取ったバイト数を返します。 @readfile() として呼び出されない限り、エラー時に FALSE を返し、エラー メッセージを表示します。
//
ob_get_contents : 出力バッファの内容を返します(出力バッファの内容を返します)
これは、出力バッファリングがアクティブでない場合、出力バッファの内容をクリアするか、FALSE を返します。 )、FALSEを返します)
//
ob_end_clean() : 出力バッファをクリーン(消去)し、出力バッファリングをオフにします(出力バッファをクリアします)
この関数は、最上位の出力バッファの内容を破棄(破棄)し、この出力をオフにしますバッファリング。(破棄してオフにする) バッファの内容をさらに処理したい場合は、 ob_end_clean() を呼び出すとバッファの内容が破棄されるため、 ob_get_contents() を呼び出す前に ob_end_clean() を呼び出す必要があります。出力バッファのクリア) 関数は、1 つのバッファの破棄に成功した場合は TRUE を返し、そうでない場合は、アクティブなバッファなしで関数を呼び出したか、何らかの理由でバッファを削除できなかったことが原因で FALSE を返します (特殊なバッファの場合は可能です)。
http://www.bkjia.com/PHPjc/364552.html
true