2012-07-07 3 views
0

Я пытаюсь удалить что-то вроде этого:Использование preg_replace, чтобы удалить нежелательные ссылки

<a href="http://women.domain.com">women.domain.com</a> 

Я подумал, что это должно быть:

$this->tresc[$i][description]=preg_replace("/\<a(.*)href=(\"|')http:\/\/women\.domain\.com.*(\"|')(.*)\/\>/i", "",$this->tresc[$i][description]); 

, но он не работает.

Для изображений, которые я использую это, и это работает прекрасно:

$this->tresc[$i][description]=preg_replace("/\<img(.*)src=(\"|')http:\/\/women\.domain\.com.*(\"|')(.*)\/\>/i", "",$this->tresc[$i][description]); 
+1

это: preg_replace ("/ <.*> /", "привет", $ this-> tresc [$ я] [описание]); –

+0

Прежде всего, вы должны сделать регулярное выражение нераскрытым, добавив U –

+0

, а затем вам нужно исправить хвост вашего регулярного выражения, чтобы распознать, отсутствующий в тегах img –

ответ

-1
$this->tresc[$i][description]=preg_replace("/<a href=\"(.*)\">/i", "",$this->tresc[$i][description]); 
$this->tresc[$i][description]=preg_replace("/<\/a\>/i", "",$this->tresc[$i][description]); 
-1
$this->tresc[$i][description]=preg_replace("/\<a .*\>.*\<\/a\>/i", "", $this->tresc[$i][description]); 
0
$pattern = '(\<a href=["|\']+[http(s)?:\/\/]+([a-z0-9\-]+[.]){1,}+[a-z]{2,4}+[\/]+(.*)+["|\']\>+(.*)+\</a\>)'; 
$string = "click <a href='http://subdomain.sitename.tld/somedir'>here</a>"; 

var_dump(preg_replace($pattern, "", $string)); // prints "string 'click ' (length=6)" 
+0

Что это значит? – Spacedust

+0

@Spacedust это пример удаления ссылки. –

+0

Я сделал это короче. Смотри ниже ;) – Spacedust

Смежные вопросы