0

我在 PHP 中使用 getimagesize 来获取有关脚本中图像的信息...

$thumb = "http://i.ytimg.com/vi/u6XAPnuFjJc/hqdefault.jpg";
$imageInfo = getimagesize($thumb);

问题是在我的一台服务器上,它返回错误:

getimagesize() [function.getimagesize]:在服务器配置中禁用 URL 文件访问

我将无法在此特定服务器上修复此配置问题。我想知道是否有人对我如何解决这个问题有任何想法。是否可以拍摄图像,将其保存到临时文件中,然后根据临时图像使用 getimagesize ?一旦完成,就需要删除临时文件。

如果这是可能的,我将如何做到这一点?

4

3 回答 3

1

由于您能够更改服务器配置,请检查是否启用了 CURL。

如果是,那么您可以使用 CURL 将图像复制到本地并在其上运行 getimagesize。

http://php.net/manual/en/book.curl.php

于 2010-12-02T01:03:05.853 回答
1

听起来您fopen()禁用了 URL 包装器 allow_url_fopen = off

您将需要使用 cURL 之类的东西来下载它,然后list($width, $height) = getimagesize()在其上运行。

于 2010-12-02T01:05:17.043 回答
0

如果未启用 CURL,您仍然可以使用套接字和 HTTP 请求在本地复制图像 - 您还可以使用它来检查文件大小(Content-Length标头)以确保您的脚本不会下载大量文件(有人试图 DOS 我的网站通过这样做XD)

于 2010-12-02T01:06:17.193 回答