在 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的主要内容,如果未能解决你的问题,请参考以下文章

php基础之gd图像生成缩放logo水印和简单验证码实现

PHP使用GD库实现 图像生成缩放logo水印和简单验证码

提高 PHP GD 生成图像的质量

在 PHP 中调整 PHP GD 生成的图像的大小并显示它

PHP gd 从生成的图像制作缩略图

php基础 gd图像生成缩放logo水印和验证码