Создание картинки из текста. Защите e-mail от спама

Рецепт №101. Из книги «128 рецептов php»
Перейти к оглавлению

Ни для кого не секрет, что сайты, особенно крупные, постоянно сканируются роботами, и не только поисковыми. Зачастую спамеры собирают свои базы e-mail адресов, сканируя сайты. Чтобы это предотвратить, можно выводить e-mail пользователей не в текстовом виде, а картинкой. Для этого необходимо предварительно перевести текст в картинку, единственная проблема, возникающая при этом, это динамический размер изображения, поскольку длина e-mail всегда разная. В решении поможет, описанная в предыдущем рецепте, функция — imagettfbbox.

Пример:

// шрифт
$font = 'impact.ttf'; 
// размер текста
$fontSize = 12; 
// текст. e-mail
$imgText = "admin@vk-book.ru"; 
// определяем размер картинки в зависимости 
// от длины и размера текста
$boxText = ImageTTFBBox($fontSize, 0, $font, $imgText);
// размер будущей картинки
$widthImg = $boxText[2] - $boxText[0];
$heightImg = $boxText[1] - $boxText[7];
// создаем полотно
$img = imagecreatetruecolor($widthImg, $heightImg);
// задаем цвет фона
$fonColor = imagecolorallocate($img, 255, 255, 255);
// заливаем фон
imagefill($img, 0, 0, $fonColor);
// цвет текста
$textColor = imagecolorallocate ($img, 0, 0, 0);
// наносим текст
imagettftext (
$img, $fontSize, 0, 0, $fontSize, 
$textColor, $font, $imgText 
);
// выводим картинку в браузере
header("Content-type: image/png");
imagePng($img);
// очищаем память
imageDestroy($img);
Рассказать друзьям:


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*