如果图片网址包含“+”字符则无法保存图片

I'm trying to save images when an user posts an image url. I'm doing this with this code:

        $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);

This works in most of the cases. But when the url contains a strange character like a "+", then the above code isn't working. He doesn't save the image then.

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

How can I save every image file, even if the url contains "strange" characters?

Update: I've echoed my $_POST['form_pic'] and it seems like that when I post the url after submit that the "+" character is replaced by a space?

Use this,

$pic = str_replace("+","_",$pic);