Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将电子邮件转换为图像?_Php - Fatal编程技术网

Php 将电子邮件转换为图像?

Php 将电子邮件转换为图像?,php,Php,我想知道如何将我的网站用户的电子邮件转换为图像 我有一个广告网站,我想用这个工具来保护用户的电子邮件。我看到很多网站都提供这项任务,但我想在网站上为每个用户显示的电子邮件做这项工作 有什么线索吗 我正在使用PHP来实现这一点: if (isset($_GET['text'])) { // get string $text = $_GET['text']; } else { // set default $text = 'liame'; }; // reverse

我想知道如何将我的网站用户的电子邮件转换为图像

我有一个广告网站,我想用这个工具来保护用户的电子邮件。我看到很多网站都提供这项任务,但我想在网站上为每个用户显示的电子邮件做这项工作

有什么线索吗

我正在使用PHP来实现这一点:

if (isset($_GET['text'])) {
    // get string
    $text = $_GET['text'];
} else {
    // set default
    $text = 'liame';
};
// reverse string
$text = strrev($text);
$textLength = strlen($text);
$textHeight = 10;

// create image handle
$image = ImageCreate($textLength*($textHeight-1),20);

// set colours
$backgroundColour = ImageColorAllocate($image,255,255,255); // white
$textColour = ImageColorAllocate($image,0,0,0); // black

// set text
ImageString($image,$textHeight,0,0,$text,$textColour);

// set correct header  
header('Content-type: image/png');

// create image
ImagePNG($image);
然后

$email = $row['email'];

<img src="image.php?text=<?php echo $email; ?>" alt="Hidden Email" />
$email=$row['email'];
“alt=”隐藏电子邮件“/>
但它不工作,图像显示为断开。

这里有一个“直接从DB”解决方案:

旁注:我选择使用两列和
WHERE
子句,但您可以更改它

按照你想要的方式做,好吧……你问题下面的评论不言而喻

您可以在希望显示它的页面中的
iframe
中设置它(此代码)

旁注:
它不能是“包含”,因为这样会用图像标题覆盖页面内容


是的,我知道,我也知道,it违背了这个目的,但是你也可以从
img src
显示它,并链接到
href
mailto:
显示反向电子邮件地址的图像有多大用处?如果我看到了,我会立即关闭你的网站。另外,我运行了这个代码ough(因为大多数在线eval.in类型测试仪不支持GD),它工作正常(输出“电子邮件”)。其他地方出现问题…?尝试删除
header()
调用,看看PHP是否生成任何错误。有趣的事实:
image.PHP?text=niet@example.com
并非“更安全”“对于您的用户,请参阅
niet@example.com
是。这应该是内联的,如果有的话。我认为使用这种方法并不是对付垃圾邮件的有效解决方案,因为通过解析源代码,机器人仍然能够找到有效的电子邮件地址。我认为应该用数据库后缀或类似的东西来替换Email Get参数。
<a href="http://www.example.com"><img src="image_generator_file.php"></a>
<img src="image_generator_file.php" border="0">
<?php 

include 'connection.php'; // Make sure connection is mysqli_ and not mysql_

$query = mysqli_query($conn,"SELECT id, email FROM your_table WHERE id = 1");

    while($row = mysqli_fetch_assoc($query)){

        $email = $row['email'];

    }


    $text = $email;

    // reverse string
    //$text = strrev($text);

    $textLength = strlen($text);
    $textHeight = 10;

    // create image handle
    $image = ImageCreate($textLength*($textHeight-1),20);

    // set colours
    $backgroundColour = ImageColorAllocate($image,255,255,255); // white
    $textColour = ImageColorAllocate($image,0,0,0); // black

    // set text
    ImageString($image,$textHeight,0,0,$text,$textColour);

    // set correct header  
     header('Content-type: image/png');

    // create image
    ImagePNG($image);
<img src="image_generator_file.php" class="pad">
.pad {
padding-top:3px;
padding-bottom:2px;
padding-left:5px;
padding-right:5px;
background:#ffffff;
}