Рецепт №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);