ホームページ  >  記事  >  バックエンド開発  >  PHP を使用してリモート画像を取得し、名前を付けて保存する方法_PHP チュートリアル

PHP を使用してリモート画像を取得し、名前を付けて保存する方法_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:22:251061ブラウズ

PHPを実装してリモート画像を取得し、名前を付けて保存する方法

以下はソースコードとその関連説明です

//URL は完全なリモート画像アドレスであり、空にすることはできません。 $filename は

として保存された画像の名前です。

//デフォルトでは、画像はこのスクリプトと同じディレクトリに配置されます

関数 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);

$img = ob_get_contents();

ob_end_clean();

$size = strlen($img);

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

fwrite($fp2, $img);

fclose($fp2);

$filenameを返す;

}

//テスト

GrabImage("http://www.66xing.com/UploadFile/200609082320515027.bmp", "as.gif");

?>

関連説明:

ob_start: 出力バッファをオンにする

この関数は出力バッファリングをオンにします。出力バッファリングがアクティブな間は、スクリプトから出力は送信されません(ヘッダーを除く)。代わりに、出力は内部バッファーに保存されます。

//

readfile: ファイルを読み取り、出力バッファに書き込みます

ファイルから読み取ったバイト数を返します。 @readfile() として呼び出されない限り、エラー時に FALSE を返し、エラー メッセージを表示します。

//

ob_get_contents: 出力バッファの内容を返す(出力バッファの内容を返す)

これは、出力バッファリングがアクティブでない場合、出力バッファの内容をクリアせずに返すか、FALSE を返します。

//

ob_end_clean() : 出力バッファをクリーン(消去)し、出力バッファリングをオフにする(出力バッファをクリアする)

この関数は最上位の出力バッファの内容を破棄(discard)し、この出力バッファリングをオフにします(破棄してオフにします) バッファの内容をさらに処理したい場合は、バッファとして ob_end_clean() の前に ob_get_contents() を呼び出す必要があります。 ob_end_clean() を呼び出すと、コンテンツは破棄されます (バッファリングされたコンテンツを使用する場合は、出力バッファをクリーンアップする前に ob_get_contents() を呼び出す必要があります)。アクティブなバッファなしで関数を呼び出したか、何らかの理由でバッファを削除できませんでした。 (特別なバッファの場合は可能)。

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

tru​​ehttp://www.bkjia.com/PHPjc/848320.html技術記事 PHP でリモート画像を取得して保存する実装方法は次のとおりです。 //URL は完全なリモート画像アドレスであり、$filename は保存された画像の名前です。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。