代码之家  ›  专栏  ›  技术社区  ›  Jack Robson

你能让网页像一个单像素的图像吗?

  •  0
  • Jack Robson  · 技术社区  · 6 年前

    我第一次建立了一个跟踪功能。

    我第一次错误地尝试创建一个PHP脚本来处理跟踪条件,但我不明白是否有可能使它出现在电子邮件中。 [这就是我没有计划这个功能的原因]

    不过,这让我想到,到底有没有办法把网页伪装成一个像素?它能在电子邮件上工作吗?

    听起来太牵强了,但希望有人能澄清为什么不是这样。

    谢谢。

    1 回复  |  直到 6 年前
        1
  •  5
  •   iainn    6 年前

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

    默认情况下,PHP将发回 Content-Type 标题 ,表示您正在为一个网页提供服务。但是你可以重写它来发送你想要的任何东西-如果你想让你的脚本生成一个PDF,或者Excel表格,或者一个图像,你只需要发送正确的标题。要做到这一点,你只需要打个电话给 header 函数,指定相关的内容类型。对于一个图像,这应该是这样的:

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

    在那之后,如果你回显了一个图像的来源,客户端将把它当作一个。如果在PHP脚本所在的同一目录中有一个单像素图像flle,那么这可以非常简单:

    readfile('single_pixel_image.png');
    

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

    收割台 ,你想做什么就做什么。把事情记录到数据库中,把文件写到磁盘上,把信息发布到API上,任何你在普通PHP脚本中可以做的事情。

    编写完所需的所有内容后,只需使用普通图像标记嵌入即可:

    <img src="tracking.php" />
    

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

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

    这会让你使用 tracking/1234.png $_GET['track'] 引用您的唯一ID,并记录任何需要记录的内容。