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

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

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

 

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

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

тема: Удаление тега <a href>..</a>
 
 автор: vasso_m   (07.05.2007 в 02:28)   письмо автору
 
 

Парсю rss новости. Там попадается содержимое с сылками на свой сайт. Как их безболезнено удалить оттуда?

вот пример тега а:

<a title="<a href=http://www.teletrade.kiev.ua/grafstat.php?gr=19>Unemployment диаграмма</a>" style="font-weight: bold; color: rgb(0, 0, 0);" href="http://www.teletrade.kiev.ua/grafstat.php?gr=19%3EUnemployment%20%D0%B4%D0%B8%D0%B0%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0">


Я попробывал так:

   $search = array("#<a[^>]+>#isU","'</a>'si");
   $replace = array("","");
   preg_replace($search, $replace, $text);

но удаляется только до первого закрываюзего знака ">". Как быть?

   
 
 автор: bronenos   (07.05.2007 в 07:33)   письмо автору
 
   для: vasso_m   (07.05.2007 в 02:28)
 

<?
$text 
preg_replace ('/<a title="[^"]+"[^>]+>[^<]+<\/a>/isU'''$text);
?>

возможно, так...

   
 
 автор: vasso_m   (07.05.2007 в 10:55)   письмо автору
 
   для: bronenos   (07.05.2007 в 07:33)
 

Этот вариант не работает.

Кроме того, аттрибут "title" может стоять в любом месте.

   
 
 автор: vasso_m   (07.05.2007 в 16:04)   письмо автору
 
   для: vasso_m   (07.05.2007 в 10:55)
 

никто не знает, да?

   
 
 автор: Artem S.   (07.05.2007 в 16:32)   письмо автору
 
   для: vasso_m   (07.05.2007 в 16:04)
 

всем лень думать за вас.

Могу посоветовать вот что.
1. < и > запрещенные символы xml, лучше использовать последовательность &lt; и &gt; Если можно то при создании rss это обеспечить. Тогда и разбор будет простой.
2. Самому заменить < (после) и > (перед) кавычкой. title="<. Сделали? смотрим пункт 1

   
 
 автор: Саня   (08.05.2007 в 19:50)   письмо автору
 
   для: vasso_m   (07.05.2007 в 02:28)
 

preg_replace('~<a[^>]+title="<a[^>]+>.*</a>"[^>]*>|</a>~isU', "", $t);

   
Rambler's Top100
вверх

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