创建无效图像

时间:2014-08-08 07:54:30

标签: php screenshot snapshot

尝试从网址创建图片。但是创建了无效的图像。

$url = 'http://example.com/image.php';
$img = '/my/folder/flower.gif';
file_put_contents($img, file_get_contents($url));

使用了cURL:

$ch = curl_init('http://example.com/image.php');
$fp = fopen('/my/folder/flower.gif', 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);

allow_url_fopen设置为true:

1 个答案:

答案 0 :(得分:0)

您的配置中很可能存在不允许访问外部URL的问题。我可以让你的两个代码变体都运行得很好。

确保allow_url_fopen确实已启用。以下PHP代码应该有所帮助。它应设置为1

echo 'allow_url_fopen has the following value: '.ini_get('allow_url_fopen');

请注意allow_url_fopen cannot be enabled via ini_set();该条目只能在php.ini或httpd.conf中设置。


其他建议:

  1. 在开发过程中输出所有错误。将error_reporting(E_ALL)添加到文件顶部。
  2. 尽可能简单地使用您的代码,即在$dir中使用简单的文件名,并稍后再添加子目录。
  3. 这会生成以下代码(为了测试目的,在$url中添加了实际工作值):

    error_reporting(E_ALL);
    
    $url = 'http://icons.iconarchive.com/icons/morcha/browsers/256/Firefox-icon.png';
    $img = 'flower.png';
    file_put_contents($img, file_get_contents($url));
    

    如果此代码不起作用,请提供已输出的所有错误以及本地图像文件的内容(如果已创建)。