Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何绘制此特定url?_Php_Image_Curl - Fatal编程技术网

Php 如何绘制此特定url?

Php 如何绘制此特定url?,php,image,curl,Php,Image,Curl,当尝试从互联网上绘制图像时,下面的代码可以正常工作。但是当谈到下面的url时,我只得到了一个test.jpg,它实际上是一个404错误页面test.jpg可以被记事本打开。PS:我可以用浏览器打开url,看到图片。感谢Mike,问题得以解决,代码得以更新 $url = 'https://spthumbnails.5min.com/10368406/518420256_c_570_411.jpg'; $reffer="http://www.sohu.com"; $user_agent="Baidu

当尝试从互联网上绘制图像时,下面的代码可以正常工作。但是当谈到下面的url时,我只得到了一个test.jpg,它实际上是一个404错误页面test.jpg可以被记事本打开。PS:我可以用浏览器打开url,看到图片。感谢Mike,问题得以解决,代码得以更新

$url = 'https://spthumbnails.5min.com/10368406/518420256_c_570_411.jpg';
$reffer="http://www.sohu.com";
$user_agent="Baiduspider+(+http://www.baidu.com/search/spider.htm)";
$saveto="test.jpg";
grab_image($url,$saveto);

function grab_image($url,$saveto,$reffer,$user_agent){
    $ch = curl_init ($url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
    curl_setopt($ch,CURLOPT_REFERER,$reffer);
    curl_setopt($ch,CURLOPT_USERAGENT,$user_agent);
    $raw=curl_exec($ch);
    curl_close ($ch);
    $fp = fopen($saveto,'w');
    fwrite($fp, $raw);
    fclose($fp);
}

谢谢迈克。这个网站确实需要CURLOPT_REFERER选项,我忽略了它来绘制图像。我还添加了useragent选项,以确保它在其他情况下工作。

尝试在您的curl请求中设置一个referer和user agent。有些站点阻止不包含它们的请求。