Четверг, 25.04.2024
Меню сайта
Вход на сайт
Логин:
Пароль:
Поиск
Статистика
Рейтинг@Mail.ru Яндекс.Метрика
Реклама
HTML Perl PHP Прочее
Защита адресов электронной почты с применением ASCII кодов на PHP
Некоторые специальные символы сложно использовать в строках, поскольку их не просто вводить с клавиатуры. Однако существуют ASCII коды, для работы с которыми PHP имеет две функции:

  • chr() - преобразовывает ASCII-код в соответствующий символ.
  • ord() - возвращает ASCII-код символа.

Данные функции можно использовать, например для защиты адресов электронной почты. Поскольку спамеры, будь они не ладны, пишут программы для поиска на страницах определенных структур, адреса электронной почты. Это может помочь уберечься от части спама. Суть защиты заключается в использовании кодов символов HTML для представления адресов, из-за чего спамерам становится сложнее найти данные электронной почты.
Приведенный ниже код принимает в качестве параметра адрес электронной почты, в формате email@domain.ru и возвращает mailto:email@domain.ru, однако в формате HTML. Например, буква m в mailto: имеет ASCII-код 109; следовательно, $#109; обозначает m. Для выполнения необходимых действий задается цикл, проходящий по всем символам строки. Чтобы реализовать эту процедуру, необходимо определить длину строки при помощи функции strlen(). После этого функция ord() расчитывает ASCII-коды всех символов, которые впоследствии используются для построения HTML-кода.

Код
<?php
function protectMail($s) {
$result = '';
$s = 'mailto:' . $s;
for ($i = 0; $i < strlen($s); $i ++) {
$result .= '&#' . ord(substr($s, $i, 1)) . ';';
}
return $result;
}
echo '<a href="' . protectMail('email@domain.ru') . '">E-Mail</a>';
?>
PHP 4868 22.02.2010
Материалы по теме: