Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.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_Curl - Fatal编程技术网

PHP:将动态URL图像保存到磁盘

PHP:将动态URL图像保存到磁盘,php,curl,Php,Curl,在磁盘上捕获以下动态图像时遇到问题,我得到的只是一个1K大小的文件 我已经设置了PHP cURL特性,可以很好地处理静态图像,但不适用于上面的链接。类似地,还有复制功能,文件放入内容(文件获取内容)…它们都可以很好地用于静态图像。关于这些PHP函数的使用,SO中有大量的参考资料,所以我在这里不作详细介绍。只需复制命令: copy('http://water.weather.gov/precip/save.php?timetype=RECENT&loctype=NWS&units

在磁盘上捕获以下动态图像时遇到问题,我得到的只是一个1K大小的文件

我已经设置了PHP cURL特性,可以很好地处理静态图像,但不适用于上面的链接。类似地,还有复制功能,文件放入内容(文件获取内容)…它们都可以很好地用于静态图像。关于这些PHP函数的使用,SO中有大量的参考资料,所以我在这里不作详细介绍。只需复制命令:

copy('http://water.weather.gov/precip/save.php?timetype=RECENT&loctype=NWS&units=engl&timeframe=current&product=observed&loc=regionER', 'precip5.png');
行为是一样的,在我的windows开发框和linux登台框上获取precip5.png大小760字节,因此可以排除操作系统问题。同样,所有PHP函数都执行完全相同的操作—生成一个文件—但为空。命令行curl程序也在生成同样的垃圾1K文件

所以,问题似乎是源代码,我能说的最好的是它是一个动态(流?)图像

理想情况下,我希望这可以在PHP或一些命令行实用程序(如curl)中完成。我试图避免仅仅为了这个而添加java(imageio)依赖项…直到我必须去那里


我试图先了解野兽(形象)的本质;-)

您正在保存的URL将生成HTML输出,而不是图像。您缺少参数
&print=1

http://water.weather.gov/precip/save.php?timetype=RECENT&loctype=NWS&units=engl&timeframe=current&product=observed&loc=regionER&print=1

哇,就是这样!然而,令人不解的是:save.php是如此著名的实用程序还是惯例打印参数不仅已知,而且其值要设置为1?你能详细说明一下吗?你是怎么理解的?谢谢我单击了你的链接,然后在浏览器中单击了“查看页面源”。您可以在那里看到带有实际图像链接的HTML。如果您在文本编辑器中打开“损坏”的图像文件,您也会看到它。啊-好的。所以,这个形象有点愚弄了我。动态部分实际上是一个html页面——除了其中的图像之外,什么都没有——所以我把浏览器URL误认为是图像源,而实际上它是一个页面。真正的图像源嵌入在该页面中。没有魔法,一切都是透明的。再次感谢。