【问题标题】:Can you make web page act like a single pixel image?你能让网页表现得像一个单像素图像吗?
【发布时间】:2018-09-09 12:43:34
【问题描述】:

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

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

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

这让我开始思考,有没有办法欺骗网页使其表现得像一个像素?它可以在电子邮件上使用吗?

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

谢谢。

【问题讨论】:

    标签: php html image


    【解决方案1】:

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

    默认情况下,PHP 会发回 text/htmlContent-Type 标头,表示您正在提供网页服务。但是您可以覆盖它以发送您想要的任何内容 - 如果您希望脚本生成 PDF、Excel 工作表或图像,您只需要发送正确的标题。为此,您只需调用header 函数,指定相关的内容类型。对于图像,这将类似于:

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

    之后,如果您回显图像的来源,客户端会将其视为图像。如果你在 PHP 脚本所在的目录下有一个单像素图像文件,这可以很简单:

    readfile('single_pixel_image.png');
    

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

    所有这一切的重要部分是,在您拨打header 之前,您可以做任何您想做的事情。在数据库中记录内容、将文件写入磁盘、将信息发布到 API,以及您可以在普通 PHP 脚本中执行的任何操作。

    在你写完你需要的一切之后,你可以使用一个普通的图像标签来嵌入它:

    <img src="tracking.php" />
    

    除此之外,您可能想做的一件事是将一个看起来更“标准”的图像文件名重定向到您的脚本,并添加一个唯一标识符。在 Apache 中,您会做这样的事情,但根据您使用的网络服务器,您需要进行调整:

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

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

    【讨论】:

    • 只是为了添加注释。并非每个邮件程序都会在电子邮件中打开外部图像。例如,Thunderbird 首先询问用户他/她是否想在这封电子邮件中打开外部图像,因此它不会 100% 准确。我认为最好在您的电子邮件中“请求已读回执”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-23
    • 2012-10-07
    • 2012-05-18
    • 2021-05-06
    相关资源
    最近更新 更多