Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Проверка "скрытости" текста
 
 автор: Киналь   (05.09.2006 в 22:05)   письмо автору
 
 

Мне нужно проверить, не находится ли некоторый текст на стороннем сайте в скрытом контейнере. То есть, попросту, виден ли этот текст на странице. Конечно, задача неблагодарная, но проверить хотя бы на <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...";

?>


Как исправить регулярное выражение?

   
 
 автор: cheops   (05.09.2006 в 22:30)   письмо автору
 
   для: Киналь   (05.09.2006 в 22:05)
 

Можно так
<?php
$pattern 
"~display:none.*".$link."[.*]<~iU";
?>

но проверка будет очень приблизительна, потом вручную нужно будет проверять... скрыть могут не только в <span>, но и в контейнере <li> или ещё где-нибудь.

   
 
 автор: Киналь   (05.09.2006 в 22:42)   письмо автору
 
   для: cheops   (05.09.2006 в 22:30)
 

Не получилось:( Все равно пишет Relax.

А насчет скрытия - это-то конечно. Можно класс невидимый сделать и вынести в отдельный css-файл, и надо будет свой браузер писать для выявления таких трюков. Но "от дурака" защитит, да и заказчика порадую=)

   
 
 автор: cheops   (05.09.2006 в 22:46)   письмо автору
 
   для: Киналь   (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..."
?>

   
 
 автор: Киналь   (05.09.2006 в 22:53)   письмо автору
 
   для: cheops   (05.09.2006 в 22:46)
 

Спасибо, все работает!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования