|
|
|
| В тексте есть изображения с ссылками, как удалить эти ссылки? (не затрагивая обычных текстовых ссылок) | |
|
|
|
|
автор: (, (12.07.2009 в 01:26) |
|
|
для: fly2p
(12.07.2009 в 00:27)
| | чем больше понятно какой там конкретно код , тем короче и быстрее может быть выражение
$p = '#<a\s+(?:[a-z]+\s*=\s*([\'"])??(?(1)(?:(?!\1).)*\1|[^\s>]*)\s*)*>(?:(?!</a\s|<img\s).[^<]*)*<img\s+(?:[a-z]+\s*=\s*([\'"])??(?(2)(?:(?!\2).)*\2|[^\s>]*)\s*)*\s*/?\s*>(?:[^<]*(?!</a[\s>]).)*</a\s*>\s*#is';
|
| |
|
|
|
|
автор: (, (12.07.2009 в 01:35) |
|
|
для: (,
(12.07.2009 в 01:26)
| | подправил
<?
$p = '#<a\s+(?:[a-z]+\s*=\s*([\'"]++)?(?(1)(?:(?!\1).)*\1|[^\s>]*)\s*)*>(?:(?!</a\s|<img\s).[^<]*)*<img\s+(?:[a-z]+\s*=\s*([\'"]++)?(?(2)(?:(?!\2).)*\2|[^\s>]*)\s*)*\s*/?\s*>(?:[^<]*(?!</a[\s>]).)*</a\s*>\s*#is';
|
| |
|
|
|
|
автор: (, (13.07.2009 в 11:59) |
|
|
для: (,
(12.07.2009 в 01:35)
| | проверил, неработало (,
поправил
<?
$txt = <<<TXT
<a href="./">
<img src = "./test.gif">
</a>
<a href=./x.php><img src =./test.gif></a>
<a href='./' target=_blank>
1 /////
</a>
<a href="./" title='<a title="href=/" href=./><img ></a>'>
<fieldset><legend>картинка</legend>
<img src = "./test.gif" alt="">
</fieldset>
</a>
TXT
;
$p = '#<a\s+(?:[a-z]+\s*=\s*([\'"])?(?(1)(?:(?!\1).)*\1|[^\s>]*)\s*)*>((?:(?!</a[\s>]|<img\s).[^<]*)*<img\s+(?:[a-z]+\s*=\s*([\'"])?(?(3)(?:(?!\3).)*\3|[^\s>]*)\s*)*\s*/?\s*>(?:(?!</a[\s>]).[^<]*)*)</a\s*>#is';
preg_match_all($p, $txt, $out);
print_r($out) ;
|
| |
|
|
|
|
автор: .......... (13.07.2009 в 12:15) |
|
|
для: (,
(13.07.2009 в 11:59)
| | поправил
<?
$txt = <<<TXT
<a href="./">
<img src = "./test.gif">
</a>
<a href=./x.php><img src ="./test.gif" alt=' \'\'\'\'\' '> </a>
<a href='./' target=_blank>
1 /////
</a>
<a href="./" title='<a title="href=/" href=./><img ></a>'>
<fieldset><legend>картинка</legend>
<img src = "./test.gif" alt="">
</fieldset>
</a>
TXT
;
$p = '#<a\s+(?:[a-z]+\s*=\s*([\'"])?(?(1)(?:(?!\1)\x5c?.)*\1|[^\s>]*)\s*)*>((?:(?!</a[\s>]|<img\s).[^<]*)*<img\s+(?:[a-z]+\s*=\s*([\'"])?(?(3)(?:(?!\3)\x5c?.)*\3|[^\s>]*)\s*)*\s*/?\s*>(?:(?!</a[\s>]).[^<]*)*)</a\s*>#is';
preg_match_all($p, $txt, $out);
print_r($out) ;
|
| |
|
|
|