在 PHP 中为 GD 生成的图像拉取远程 URL
Posted
技术标签:
【中文标题】在 PHP 中为 GD 生成的图像拉取远程 URL【英文标题】:Pull Remote URL for GD Generated Image in PHP 【发布时间】:2010-07-21 22:01:57 【问题描述】:我正在使用 php/GD 库生成图像,供人们放置在他们的网站上。类似于“命中计数器”服务。
我无法从加载按钮的页面中提取 URL。
以下仅显示我的网址而不是他们的:
$_SERVER['SERVER_NAME'];
我是否需要在 javascript 中提取域?
【问题讨论】:
哇!没想到这么快就有答案了,谢谢! 【参考方案1】:SERVER_NAME 与您的服务器相对应。为了获取托管图像的服务器名称,可以通过几种不同的方式完成。
您可以在图像调用 IE 中添加一个 get 字符串:img src="http://yousite.com/image.png?sitecode=32423" 这是数据库中对您放置图像的站点的引用.这种方法将是最可靠的imo。
和/或
您还应该能够使用 $_SERVER['HTTP_REFERRER'] 字符串来获取域和它来自的页面,并使用 parse_url 函数对其进行解析。我不确定这种方法有多可靠,但一些测试可能有助于您了解它的可靠性。
希望对您有所帮助。
【讨论】:
谢谢,HTTP_REFERER 目前正在工作,不确定它有多可靠。 @Billy 非常可靠。它很容易在客户端被伪造或关闭,但需要用户更改他们的浏览器。将图片嵌入其网站的用户无法阻止发送引荐来源网址。【参考方案2】:您是否正在尝试获取请求图片的页面的 URL?您可以让 IMG src 为您提供一些 GET 变量,例如:
‘ <img src="http://yourimageserver.com/render.php?requestURL=<php? Echo $_SERVER['SERVER_NAME']; ?>" /> ‘
然后,请求服务器让图像服务器知道他是谁。如果请求服务器具有固定且唯一的 IP 地址,您也可以在此处将其用作 KEY。
【讨论】:
我试图避免在 url 中有变量,只有“/images/image.png”。如果 HTTP_REFERRER 被证明不可靠,我可能不得不添加它们,谢谢!以上是关于在 PHP 中为 GD 生成的图像拉取远程 URL的主要内容,如果未能解决你的问题,请参考以下文章