php скрипт, который генерирует javscript, который можно вешать на сайте и не бояться попасть в спам лист.
постоянно запускать php НЕТ СМЫСЛА, можно сгенерировать 1 раз, и положить непосредственно js.
Брал где-то в просторах инета давно - не помню где...
постоянно запускать php НЕТ СМЫСЛА, можно сгенерировать 1 раз, и положить непосредственно js.
Брал где-то в просторах инета давно - не помню где...
<?php // Функция генерации случайного набора символов function rnd_string() { // Из каких символов будет собирать строку $textCharacters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; // Переменная для хранения строки $string = ""; // Выбираем случайную длину от 5 до 10 $stringLength=mt_rand(5,10); // Составляем строку while(strlen($string) < $stringLength) { $string .= substr($textCharacters, mt_rand(0,strlen($textCharacters)-1),1); } return $string; } // Защищаемая строка, в нашем случае - HTML код контакной информации $contact_info='<a href="mailto:mail@example.com">ткнуть сюды штобэ напесать нам йе-мэйл</a>'; //$contact_info='<a style="font-weight: bolder; white-space: nowrap; color:#73A8D2;" href="mailto:othermail@example.com">написать<br>нам e-mail</a>'; // Максимальное число кусочков, из расчета что в минимальном по длине содержится 3 символа $max_slices=ceil(strlen($contact_info)/3); // Создаем массив, содержащий случайные имена переменных JavaScript for($i=0;$i<$max_slices;$i++) { $rnd_strs[$i]=rnd_string(); } // Переменная для хранения защитного скрипта $antispam="<script language='JavaScript'><!--\n"; //тут после коммента и до переноса строки было 3 слеша, НО какая-то версия FF слитала коментарий - весь оставшийся текст, во всех остальных норм. // Текущее число символов, выбираемых из защищаемой строки $current=0; // Начальная позиция, с которой выбираем $current символов в цикле $last=0; // Разделяем защищаемую строку на случайные кусочки for($i=0;$i<$max_slices;$i++) { // Случайное число символов $current=mt_rand(3,7); // Отделяем от исходной строки $temp=substr($contact_info,$last,$current); // Добавляем к выходному коду $antispam.=$rnd_strs[$i]."='".$temp."';"; // Для следующей итерации цикла сохраняем значение конца текущего снятого куска исходной строки $last=$last+$current; } // Код JavaScript для вывода в браузер $antispam.="document.write("; // Код JavaScript для объединения строк for($i=0;$i<$max_slices;$i++) { $antispam.=$rnd_strs[$i]."+"; } $antispam.="'');\n//--></script>"; // Выводим в браузер echo $antispam; ?>
Комментариев нет:
Отправить комментарий
откомментить