【问题标题】:PHP getimagesize() alternatives without javascript?没有 javascript 的 PHP getimagesize() 替代方案?
【发布时间】:2011-01-09 20:13:35
【问题描述】:

假设我有一个图像的 URL,并且在服务器配置中禁用了 URL 文件访问,这不是我可以(或想要)更改的东西,有没有一种简单的方法可以使用 PHP 来获取它的高度/宽度? 如果可能的话,我宁愿不使用 javascript。

【问题讨论】:

  • 您有文件系统访问权限吗?

标签: php image size


【解决方案1】:

嗯,所以您要通过网络将图像拉入您的 PHP 应用程序“查找”大小,然后大概发出一个带有该大小的 HTML img?对我来说似乎有点时髦。

【讨论】:

  • 是的。基本上这个想法是创建头像。我想我可以让人们手动输入尺寸然后相应地调整它们的大小,或者希望人们只会选择在我想要保持它们的大小限制内的化身......但我宁愿能够调整大小图像是(比如 50x50),同时仍然允许人们选择非方形图像(所以可能必须是 40x50)
  • 您是否考虑过简单地使用 Gravatar 服务? (www.gravatar.com) 堆栈溢出使用它。而不是自己构建系统的所有麻烦。额外的好处是,已经有头像的用户会自动显示出来。那些没有的人可以拥有自动生成的身份图标(模式)。
  • en.gravatar.com/site/implement/php 只是为了后代,这是在 PHP 中实现 gravatar 的简单方法。
【解决方案2】:

为了检查远程图像,您必须以某种方式请求它。你无法确定你看不到的东西的属性。如果您的 PHP 安装禁用了远程文件访问,您可能必须将其移植到系统级进程,例如 wget、cURL 或 ftp。

如果您的主机禁用了远程文件访问,他们可能也禁用了 shell 访问,但作为示例,您可以执行以下操作:

exec("wget ".$url);

另一种选择可能是使用built-in cURL package,如果通过一些奇怪的配置它已安装并处于活动状态,尽管没有远程文件访问权限。

如果你能找到从远程服务器下载图像的方法,你可以在上面使用getimagesize()

【讨论】:

    【解决方案3】:

    这实际上没有多大意义,因为如果您可以在网页上查看图像,则应该可以通过 URL 直接访问该图像。换句话说,为什么你会有一个无法通过 url 访问的图像的 url?

    无论如何,您可以使用任意数量的 http/url 库在请求的标头中设置用户代理。从本质上讲,您欺骗服务器相信浏览器正在访问文件,而不是匿名服务。

    这是您可以用于此目的的browser user agents 列表。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-17
      • 1970-01-01
      相关资源
      最近更新 更多