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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Регулярные выражения - вырезать ссылки из HTML

Сообщения:  [1-8] 

 
 автор: OZ_   (17.08.2005 в 16:25)   письмо автору
 
   для: cheops   (17.08.2005 в 12:11)
 

Вот как получилось:

<?php
       $link
=preg_replace('/\.\/{0,}/','/',$link);
       
$link=preg_replace('/\.\.\/{0,}/','/',$link);
       
$link=preg_replace('/(\/\/+)/','/',$link);
?>

   
 
 автор: cheops   (17.08.2005 в 12:11)   письмо автору
 
   для: OZ_   (17.08.2005 в 04:29)
 

Хм... а вообще говоря точка является спец-символом, обозначающим один любой символ и требует экранирования и прямой слеш тоже, т.е. ваши регулярные выражения должны выглядеть примерно так
<?php
       $link
=preg_replace('/\\\.\//','/',$link); 
       
$link=preg_replace('/\\\.\.\//','/',$link); 
       
$link=preg_replace('/(\/\/+)/','/',$link);
?>

PS Лучше заводить под новый вопрос новую тему.

   
 
 автор: OZ_   (17.08.2005 в 04:29)   письмо автору
 
   для: cheops   (16.08.2005 в 15:28)
 

Помогите, пожалуйста.
Пытаюсь в строке URL превратить все относительные смещения пути в нормальные - превращаю //, ./ и ./ в /.

       $link=preg_replace('/\.\//','/',$link);
       $link=preg_replace('/\..\//','/',$link);
       $link=preg_replace('/(\/\/+)/','/',$link);

Но вдруг выскочило ./ в одном из результатов...
Что я сделал не так?

   
 
 автор: cheops   (16.08.2005 в 15:28)   письмо автору
 
   для: OZ_   (16.08.2005 в 03:30)
 

К ним нужно просто привыкнуть :))) они только выглядят страшно, а так их достаточно просто составлять. Если пару раз проработать Дж Фридла "Регулярные выражения" то это сможет освоить каждый - чтение занудное и трудное, но полезное и слихвой себя окупает. Лучше Фридла, пожалуй не напишешь... Это самая лучшая книга по регулярным выражениям на сегодняшний момент.

   
 
 автор: OZ_   (16.08.2005 в 03:30)   письмо автору
 
   для: cheops   (16.08.2005 в 01:36)
 

cheops, напишите, пожалуйста, справочник (.chm, например) по регулярным выражениям. Удивляюсь Вашим способностям их создавать.

Когда я понимаю, что без регулярных выражений в скрипте не обойтись, я произношу другое выражение, тоже ставшее регулярным.

   
 
 автор: Lenux   (16.08.2005 в 03:15)   письмо автору
 
   для: carat   (16.08.2005 в 00:22)
 

Сейчас, что нить своё сварганю, как я понял надо что бы от <a href.. до </a> всё было потёрто:), достаточно интересно...
Надо, что то посоветовать. Использую релуярные выражения, т.к. строковые мне кажется здесь не уместны, ты знаешь какие пути будут к файлу?
Причём для рег. выражений шаблон:
<a href=\"".Путь ли, что- то.".xls\">Что- то </a>

   
 
 автор: cheops   (16.08.2005 в 01:36)   письмо автору
 
   для: carat   (16.08.2005 в 00:22)
 

А принципиально какие регулярные выражения использовать POSIX или Perl-совместимые? Если не очень, то эту задачу выполнит следующее регулярное выражение
<?php 
  $text 
'привет!
мне надо обработать существующую страницу HTML.
в тексте много строк типа:

<A href="http://www.test.ru/content/TSPO085.xls" target=_blank>- [ Загрузить Excel файл с 
ценами]</A>

вот их всех и надо удалить из текста.
делаю так:'
;
  echo 
preg_replace("|<a href=\"[^\"]+xls\"([^>]+)>([^>]+)>|i","",$text);
?>

PS Лучше не испльзовать конструкции .+ ими очень трудно управлять, особенно в "жадном" режиме, который используется по умолчанию.

   
 
 автор: carat   (16.08.2005 в 00:22)   письмо автору
 
 

привет!
мне надо обработать существующую страницу HTML.
в тексте много строк типа:

<A href="http://www.test.ru/content/TSPO085.xls" target=_blank>- [ Загрузить Excel файл с
ценами]</A>

вот их всех и надо удалить из текста.
делаю так:

$pattern = "<a.+\.xls.*>.+</a>";
$html = eregi_replace($pattern, "[deleted]", $html);

но при этом удаляется весь текст от первого тега
"<a.+\.xls.*>" и до последнего тега "</a>".

тужился-тужился и никак. просвятите ламера!

   

Сообщения:  [1-8] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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