您能否使网页像单个像素的图像一样起作用?

时间:2018-09-09 12:43:34

标签: php html image

我是第一次构建跟踪功能。

错误地,我首先尝试创建一个可以处理跟踪条件的PHP脚本,但是我不明白是否有可能使其显示在电子邮件中。 [这就是我没有计划此功能的结果]

我要继续,现在在电子邮件中添加一个像素,然后使用服务器访问日志来增加跟踪统计信息。

这让我开始思考,是否仍然可以将网页欺骗为一个像素?可以在电子邮件上使用吗?

听起来太遥不可及,但希望有人能澄清为什么不是这样的情况。

谢谢。

1 个答案:

答案 0 :(得分:5)

PHP脚本可以像您想要的任何类型的文档一样工作,您只需要让浏览器(或电子邮件客户端等)知道发生了什么。

默认情况下,PHP将发回 text / html Content-Type标头,表明您正在提供网页。但是您可以重写此命令以发送任何内容-如果您希望脚本生成PDF,Excel工作表或图像,则只需要发送正确的标题即可。为此,您只需要调用header函数,并指定相关的内容类型即可。对于图像,它类似于:

header('Content-Type: image/png');

此后,如果您回显图像源,则客户端将其视为一个图像。如果您在与PHP脚本相同的目录中有一个单像素图像文件,则可以很简单:

readfile('single_pixel_image.png');

直接从磁盘读取文件并将其发送到客户端。

这一切的重要部分是,在致电header之前,您可以做任何喜欢的事情。将事情记录到数据库中,将文件写入磁盘,将信息发布到API,以及使用普通PHP脚本所做的任何事情。

编写完所需的所有内容之后,您可以使用常规图像标签将其嵌入:

<img src="tracking.php" />

您可能还想做的一件事是将外观更“标准”的图像文件名重定向到脚本,并添加唯一的标识符。在Apache中,您将执行以下操作,但是根据您使用的Web服务器,您需要进行调整:

RewriteRule ^/?tracking/(.*).png$ tracking.php?track=$1 [QSA, L]

这将使您可以在电子邮件图像标签中使用tracking/1234.png,并在后台运行PHP。在脚本中,您可以使用$_GET['track']来引用您的唯一ID,并记录任何需要记录的内容。