带有PNG扩展的动态PHP图像
我正在尝试制作一个类似于以下其中一个的图像: 不是真正的内容(显示IP地址和标题),而是以PNG格式显示的PHP图像(这样我就可以在网站上使用BB图像标记) 我知道如何创建动态图像,但只有在访问PHP页面时才知道。如果有问题,当前正在使用此选项:带有PNG扩展的动态PHP图像,php,png,image-conversion,Php,Png,Image Conversion,我正在尝试制作一个类似于以下其中一个的图像: 不是真正的内容(显示IP地址和标题),而是以PNG格式显示的PHP图像(这样我就可以在网站上使用BB图像标记) 我知道如何创建动态图像,但只有在访问PHP页面时才知道。如果有问题,当前正在使用此选项: $image = imagecreate(200, 60); $text_color = imagecolorallocate($image, 255, 255, 0); header("Content-type: image/png"); ima
$image = imagecreate(200, 60);
$text_color = imagecolorallocate($image, 255, 255, 0);
header("Content-type: image/png");
imagestring($image, 4, 40, 30, "hello", $text_color);
imagepng($image);
imagecolordeallocate($text_color);
imagedestroy($image);
你对如何实现这一目标有何想法
我正在寻找的更多示例有:
编辑:大多数评论都是关于从PNG转换到PHP的,我想从PHP转换到PNG,只是想澄清一下。如果你在apache上托管,你可以使用
mod_rewrite
。这是一个样本(未测试):
以下是一个教程:
更多信息:你很接近了,像上面那样创建你的图像,有用的变量是
$\u服务器['REMOTE\u ADDR']
(ip地址),$\u服务器['HTTP\u USER\u AGENT']
(浏览器)。看
在您的图像上格式化它们,并通过在浏览器中查看PHP脚本使其看起来像您想要的那样
然后,如果您使用的是Apache,请设置一个重写规则来重写指向PHP脚本的URL
以下是一个例子:
RewriteEngine On
RewriteRule ^/signatures/sig.png$ /signature.php [L]
这将重写http://yoursite.com/signatures/sig.png
至http://yoursite.com/signature.php
这样,用户可以将png URL嵌入他们的签名或网页中以显示您的图像
最终,您可以拥有多个签名,并通过重写特殊参数(即
/signature/1234.png
到signature.php?id=1234
或/signature/style1/1234.png
到signature.php?id=1234&style=style1
)重写您的URL。它实际上看起来像是这样的代码,从php手册中复制即可。您只需要从一个基本图像开始,然后将“hello”更改为更有趣的内容。@ChrisHenry问题是我只能通过进入file.php而不是file.png来访问它,这正是我要找的。但是。。。为什么?文件扩展名并不重要。如果出于某种原因,您可以始终使用content disposition标头。您不能将PHP扩展作为图像嵌入网站,这就是我要寻找的(嵌入网站的内容)。如果是您的网站,您肯定可以将以.PHP结尾的URL作为图像嵌入。您的浏览器只关心内容类型是否正确。也许一些写得不好的论坛软件要求它以.png结尾,但我不相信这是正常的。我的webhost不运行在apache上(如果你碰巧知道它的任何内容,那么这个网站就是),有没有其他方法可以让你不需要它,或者你能推荐一个没有运行apache的庞大URL的免费网络主机吗?请看我下面的评论,这是非常有用的,如果这是切换免费网络主机的唯一“简单”方法,你能推荐任何运行apache且没有庞大URL的(如mysite.stackoverflow.users.com)吗?我不确定免费,而且有这么多的网络主机,我真的不能推荐一个。首先,您可以使用动态dns服务将域名指向internet连接,并托管自己的apache服务器。但是如果你看一下,你会发现许多便宜的网络主机,它们将拥有比你所需要的一切更多的东西和良好的服务。好的,非常感谢你们以及你们所有人的所有其他评论,我非常感谢!我会调查这件事,希望它能像看起来一样容易解决!
RewriteEngine On
RewriteRule ^/signatures/sig.png$ /signature.php [L]