Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.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 远程映像服务器提供的文件与getimagesize访问的文件不同_Php_Image_Remote Server - Fatal编程技术网

Php 远程映像服务器提供的文件与getimagesize访问的文件不同

Php 远程映像服务器提供的文件与getimagesize访问的文件不同,php,image,remote-server,Php,Image,Remote Server,我有一个网站,我检查图像大小,以便调整周围各种HTML元素的大小。图像URL是通过数据传入的,并且是远程托管的,所以我事先不知道图像的尺寸。我使用的是getimagesize,它似乎工作正常(虽然速度很慢),但现在我看到了一种情况,即我从getimagesize返回的图像维度并不是我最终得到的图像文件的维度。图像URL不是直接指向文件,而是指向提供图像的脚本,因此我假设所提供的图像文件在getimagesize检查和实际下载之间发生了变化 有人处理过这个问题吗?是否有任何服务器端解决方案可以获得

我有一个网站,我检查图像大小,以便调整周围各种HTML元素的大小。图像URL是通过数据传入的,并且是远程托管的,所以我事先不知道图像的尺寸。我使用的是getimagesize,它似乎工作正常(虽然速度很慢),但现在我看到了一种情况,即我从getimagesize返回的图像维度并不是我最终得到的图像文件的维度。图像URL不是直接指向文件,而是指向提供图像的脚本,因此我假设所提供的图像文件在getimagesize检查和实际下载之间发生了变化

有人处理过这个问题吗?是否有任何服务器端解决方案可以获得正确的维度,或者在图像加载后我是否需要使用JS解决方案?
Brian

更好的方法是不设置image.onload,这样一旦加载图像,您就可以获取实际图像大小并调整页面,然后将图像文件下载到临时文件中,然后对该文件调用
getimagesize()


尽管根据中的一条评论,这基本上就是
getimagesize($url)
的工作原理。所以我不知道你为什么会得到不同的维度。如果图像文件正在动态更改,那么PHP脚本似乎无法获得浏览器将看到的大小,因此,您必须使用在加载图像后运行的Javascript解决方案。

数据中传递的图像URL具有HTML实体,getimagesize和实际图像下载对其进行了不同的处理。

我建议调整CSS,这样您就不必在PHP或JS中处理它。在这里发布HTML代码会有帮助的。对不起,我知道了。图像URL中有HTML实体,它们被getimagesize和实际下载以不同的方式处理。然而,考虑到我使用getimagesize的速度很慢,这两个都是值得研究的好建议。谢谢你的回复。