PHP « Удаление атрибута HTML тега с помощью php.

Нужно удалить атрибут тега с помощью php.

пример
есть:
/** * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .html4strict.geshi_code {font-family:monospace;} .html4strict.geshi_code .imp {font-weight: bold; color: red;} .html4strict.geshi_code .kw2 {color: #000000; font-weight: bold;} .html4strict.geshi_code .kw3 {color: #000066;} .html4strict.geshi_code .es0 {color: #000099; font-weight: bold;} .html4strict.geshi_code .br0 {color: #66cc66;} .html4strict.geshi_code .sy0 {color: #66cc66;} .html4strict.geshi_code .st0 {color: #ff0000;} .html4strict.geshi_code .nu0 {color: #cc66cc;} .html4strict.geshi_code .sc-1 {color: #808080; font-style: italic;} .html4strict.geshi_code .sc0 {color: #00bbdd;} .html4strict.geshi_code .sc1 {color: #ddbb00;} .html4strict.geshi_code .sc2 {color: #009900;} .html4strict.geshi_code span.xtra { display:block; }

<a href="test.com/asdasd.php > ... </a>
 

получить:
/** * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .html4strict.geshi_code {font-family:monospace;} .html4strict.geshi_code .imp {font-weight: bold; color: red;} .html4strict.geshi_code .kw2 {color: #000000; font-weight: bold;} .html4strict.geshi_code .kw3 {color: #000066;} .html4strict.geshi_code .es0 {color: #000099; font-weight: bold;} .html4strict.geshi_code .br0 {color: #66cc66;} .html4strict.geshi_code .sy0 {color: #66cc66;} .html4strict.geshi_code .st0 {color: #ff0000;} .html4strict.geshi_code .nu0 {color: #cc66cc;} .html4strict.geshi_code .sc-1 {color: #808080; font-style: italic;} .html4strict.geshi_code .sc0 {color: #00bbdd;} .html4strict.geshi_code .sc1 {color: #ddbb00;} .html4strict.geshi_code .sc2 {color: #009900;} .html4strict.geshi_code span.xtra { display:block; }

<a> ... </a>
 

нужно удалить атрибут href, только в том случае если он содержит "test.com"

1 ответов



//$page - ваша страница
$page = preg_replace("/(<a[^>]*)href[\s]*=[\s]*(?:\'([^\']*)\'|\"([^\"]*)\"|([^\s>]*))/i","\$1",$page);
 

Немного неправильно озвучил вопрос. Вообщем происходит синдикация через RSS, и картинки которые вставляются имеют кривые ссылки, я хочу удалить ссылки вообще. Лучше всего это сделать в коде страницы где RSS и выводится, что бы эти ссылки всегда автоматически подчищались. В Google говорят что нужно использовать preg_replace ( вроде бы так ) и регулярные выражения ( которые я почти не знаю ), но при таком подходе удалятся все ссылки, а мне нужно только те что ссылаются на test.com


Примерно так:


$new = preg_replace('/\s?href=[\'"]+test\.com.*?[\'"]/i', '', $string);