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;
?>

Комментариев нет:
Отправить комментарий
откомментить