PHP создать изображение для отображения адреса электронной почты? - PullRequest
2 голосов
/ 14 мая 2010

Использование PHP: Как я могу создать изображение для отображения адреса электронной почты (чтобы уменьшить спам)?

Это означает, что если я хочу отобразить "joe@example.com" на своей веб-странице, поскольку сканеры могут легко найти этот текст - я хочу отобразить адрес электронной почты в виде изображения с надписью "joe@example.com".

Как мне это сделать? Я хочу, чтобы шрифт был:

  • цвет: # 20c
  • шрифт: 11px, нормальная тахома

Ответы [ 4 ]

4 голосов
/ 14 мая 2010

Простой поиск, который вы могли бы легко сделать ....

Однако: (цвет, шрифт и строка не те, которые вы указали)

header("Content-type: image/png");
$im = @imagecreate(110, 20)
    or die("Cannot Initialize new GD image stream");
$background_color = imagecolorallocate($im, 0, 0, 0);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  "A Simple Text String", $text_color);
imagepng($im);
imagedestroy($im);

Соответствующие определения функций:

php.net / imagecreate

php.net / imagestring

3 голосов
/ 14 мая 2010

Используйте это:

  • header , чтобы указать браузеру ожидать изображение вместо HTML (PHP по умолчанию). Страницы документации функции изображения имеют больше информации об этом.
  • imagettfbbox , чтобы узнать необходимый размер изображения
  • imagecreatetruecolor , для создания ресурса изображения
  • imagecolorallocate , чтобы выделить цвет для текста
  • imagettftext , чтобы нарисовать текст (прочитайте пример, это почти все, что вам нужно)
  • imagepng , для вывода изображения в браузер
0 голосов
/ 14 мая 2010

Если вы делаете это только для одного адреса, вам не следует делать это динамически каждый раз, когда страница загружается по соображениям производительности. Если дело обстоит именно так, вы можете найти онлайновый обфускатор электронной почты, например, такой:

http://digitalcolony.com/lab/maskemail/maskemail.aspx

0 голосов
/ 14 мая 2010

Вы должны использовать библиотеку обработки изображений gd.

...