Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Тексты > Использование регулярных выражений


Автор: carat 16.8.2005, 00:00
привет!
мне надо обработать существующую страницу 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>".

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

Автор: Wolf1994 16.8.2005, 01:27
Упс. Я здесь ввёл неверный код, так как, как и писал, ничего не понимаю в регулярках - поторопился (в редакторе не заметил что отображается ссылка, а не текст).
Поэтому, чтобы как-то оправдаться, привожу решение в своём стиле smile

Код

for ($ipos=0; $ipos<strlen ($html); $ipos++)
{
 if (substr ($html, $ipos, 1)=="<") {$ipos1=$ipos;}
 if (substr ($html, $ipos, 1)==">") {$html=substr ($html, 0, $ipos1).substr ($html, $ipos+1);}
}
echo $html;


IMHO, "вручную" можно добиться гораздо большего эффекта - регулярками иных вариантов не предусмотришь (не этот случай - здесь, скорее всего всё просто).

Автор: Mal Hack 16.8.2005, 13:01
carat а можно было глаза чуьт ниже спустить и глянуть в эту тему: http://forum.vingrad.ru/index.php?showtopic=61469&unread=1&hl=
Тебе лишь осталось туда вставит .xls.

Автор: Black Rabbit 17.8.2005, 11:08
$pattern = "/<a.+\.xls.*>.+</a>/U";

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)