使用cURL

时间:2017-10-12 08:00:09

标签: php curl highcharts

我正在使用HighCharts并使用cURL保存图表的图像。它在我的localhost工作正常。但是当我在服务器上尝试相同的代码时,图像是空白的。在服务器error_log中,我发现了这条警告消息:

PHP Warning:  imagecreatefromjpeg(): '10361254147.jpeg' is not a valid JPEG file in public_html/project/assign_img.php on line 34

我使用的代码如下:

$imgNm = 'https://export.highcharts.com/charts/chart.2ce468213abe432aa1c288339f90171e.jpeg';
$img = 'xyz.jpeg';
$ch = curl_init($imgNm);
$fp = fopen($img, "w");
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);

imagecreatefromjpeg($img);

不确定我错在哪里。

2 个答案:

答案 0 :(得分:0)

如果您只想保存文件并在浏览器中显示,则不需要cURL:

$imgNm    = 'https://export.highcharts.com/charts/chart.2ce468213abe432aa1c288339f90171e.jpeg';
$filename = 'xyz.jpeg';

$image_data = file_get_contents($imgNm);
file_put_contents($filename, __DIR__ . '/' . $imgNm);

在此之后,文件将保存在与脚本相同的目录中(名为“xyz.jpeg”),您可以以任何方式使用它

答案 1 :(得分:0)

I added a line for SSL verification to be false and the code worked fine for me.

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

Hope this help someone.