【问题标题】:PHP getimagesize without URL file-access没有 URL 文件访问的 PHP getimagesize
【发布时间】:2011-05-18 20:37:34
【问题描述】:

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

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

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

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

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

如果可以,我该怎么做?

【问题讨论】:

  • 您可以访问curl 吗?

标签: php getimagesize


【解决方案1】:

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

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

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

【讨论】:

  • 感谢您的帮助...好的,如果我没有 cURL 怎么办?但是我确实有:Zend_Http_Client。我将如何使用它?
  • 您可以使用 Zend_HTTP_Client 将图像文件下载到本地,然后检查大小。此处的文档:framework.zend.com/manual/en/zend.http.client.advanced.html(底部的数据流部分)
【解决方案2】:

听起来你有fopen() URL wrappers disabledallow_url_fopen = off。

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

【讨论】:

  • 感谢您的帮助...好的,如果我没有 cURL 怎么办?但是我确实有:Zend_Http_Client。我将如何使用它?
【解决方案3】:

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

【讨论】:

    猜你喜欢
    • 2016-07-19
    • 2011-01-26
    • 2011-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-04
    • 2017-08-14
    相关资源
    最近更新 更多