|
|
|
| Мне нужно проверить, не находится ли некоторый текст на стороннем сайте в скрытом контейнере. То есть, попросту, виден ли этот текст на странице. Конечно, задача неблагодарная, но проверить хотя бы на <span style="display:none"> все-таки надо.
Для отладки написал вот что:
<?php
$link = "<a href='http://ya.ru'>my_link</a>";
$text = "<span style='display:none'> Sponsor: <a href='http://ya.ru'>my_link</a> It's bad... </span>";
$pattern = "~display:none[.*]".$link."[.*]<~i";
if (preg_match($pattern, $text)) echo "Alarm!";
else echo "Relax...";
?>
|
Как исправить регулярное выражение? | |
|
|
|
|
|
|
|
для: Киналь
(05.09.2006 в 22:05)
| | Можно так
<?php
$pattern = "~display:none.*".$link."[.*]<~iU";
?>
|
но проверка будет очень приблизительна, потом вручную нужно будет проверять... скрыть могут не только в <span>, но и в контейнере <li> или ещё где-нибудь. | |
|
|
|
|
|
|
|
для: cheops
(05.09.2006 в 22:30)
| | Не получилось:( Все равно пишет Relax.
А насчет скрытия - это-то конечно. Можно класс невидимый сделать и вынести в отдельный css-файл, и надо будет свой браузер писать для выявления таких трюков. Но "от дурака" защитит, да и заказчика порадую=) | |
|
|
|
|
|
|
|
для: Киналь
(05.09.2006 в 22:42)
| | Второй символ забыл исправить, попробуйте так
<?php
$link = "<a href='http://ya.ru'>my_link</a>";
$text = "<span style='display:none'> Sponsor: <a href='http://ya.ru'>my_link</a> It's bad... </span>";
$pattern = "~display:none.*".preg_quote($link).".*<~iU";
if (preg_match($pattern, $text)) echo "Alarm!";
else echo "Relax...";
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(05.09.2006 в 22:46)
| | Спасибо, все работает! | |
|
|
|