0

インターネット イメージをローカル フォルダーにコピーする php 関数を作成しました。

function copyImageToLocal($url, $id)
{
    $ext=strrchr($url, "."); 
    $filename = 'images/' . $id . $ext;

    ob_start(); 
    readfile($url); 
    $img = ob_get_contents(); 
    ob_end_clean();

    $fp=@fopen($filename, "a"); 
    fwrite($fp, $img); 
    fclose($fp); 
}

注: 渡された $url は有効です。この関数は最初は失敗することがありますが、2 回目または 3 回目は成功することがあります。本当に奇妙です... これには特別な PHP 設定が必要ですか?

私を助けてください!


私は本当の理由を見つけました.ブラウザで開くことはできますが、テスト画像のURLはプログラムのアクセスには許可されていません. 他の画像のURLを試してみましたが、機能はうまくいきます。

ですから、この種のケースを処理する方法を見つける必要があるようです。みんなありがとう!

4

1 に答える 1

1

ファイルを開いて、次のようにディスクに書き込んでみませんか。

file_put_contents($filename, fopen($url, 'r'));

これによりバッファリングも行われるため、メモリの問題が発生することはありません(ファイルに書き込む前に画像全体をメモリに保存しているため)

于 2013-07-24T03:17:09.493 に答える