1

ユーザーが画像の URL を投稿したときに画像を保存しようとしています。私はこのコードでこれをやっています:

        $pic = $Db->escape($_POST['form_pic']); // (escape is a function to mysql_real_escape_string)
        $time = strtotime("now");
        $filename = $item_id.'_'.$time.'.'.$ext;
        $item_pic = 'img/ads/'.$filename;

        $contents = file_get_contents($pic);
        file_put_contents('../img/ads/'. $filename, $contents);

これはほとんどの場合に機能します。しかし、URL に「+」などの奇妙な文字が含まれている場合、上記のコードは機能しません。その場合、彼は画像を保存しません。

 An example url: http://2.bp.blogspot.com/-ubBMWObG6u0/T-m3zYIq3CI/AAAAAAAABxU/Z8aa1Dgny9c/s1600/Grown+sunglasses.jpg

URLに「奇妙な」文字が含まれていても、すべての画像ファイルを保存するにはどうすればよいですか?

更新: $_POST['form_pic'] をエコーし​​ましたが、送信後に URL を投稿すると、「+」文字がスペースに置き換えられたように見えますか?

4

1 に答える 1

-1

これを使って、

$pic = str_replace("+","_",$pic);
于 2012-12-01T09:47:42.213 に答える