将电子邮件地址显示为图像


Showing email addresses as an image

我正在尝试使用Php的gd库在我的页面上显示电子邮件作为图像,因此它们不能被垃圾邮件发送者使用。问题是,我下面的教程使用了一个内容类型为:image/jpeg的标题。这意味着我只能在这个页面上有图像。

如何使用GD库在Html/Php页面中显示图像?或者还有其他的方法吗?

当您更改页面的标题时,整个页面将根据该标题呈现。在使用像电子邮件这样的东西的情况下,如果你想保持单页,你有几个选择。

你的第一个选择是使用base64编码

//create the image, $im
//omit the header settings
ob_start();
    imagejpeg($im);
    $data = ob_get_contents();
ob_end_clean();
echo '<img src="data:image/jpeg;base64,'.base64_encode($data).'">';

在这里,我们放置了一个输出缓冲区来阻止任何内容进入客户端,并将其存储在变量$data中。然后我们使用base64_encode对其进行编码,并以浏览器可以解释的方式输出到页面。

你也可以使用get方法

if(isset($_GET['email'])) {
    header("Content-type: image/jpeg");
    //create the image, $im
    imagejpeg($im);
    imagedestroy($im);
    die;
}
echo '<img src="?email">';

实际上,我们只是用if语句发送一个电子邮件输入和处理。