2011-06-28 27 views
0

我使用此代碼剝離從文本中的所有鏈接:preg_replace和它裏面的條件?

$字符串= preg_replace函數( 「/ \] )>([^ <])\ </A>/I」, 「$ 2」,$串);

但我想以某種方式不要去掉指向某個域名的鏈接,例如google.com 因此,我想刪除所有其他網址,但要保留鏈接到一個域名。

我怎樣才能在preg_replace函數添加一些條件?

回答

2

您需要使用preg_replace_callback()爲條件。

但你可能會更好解析HTML和操作DOM。原因是,你的正則表達式總會有一些缺陷。目前的一個,例如,將不會阻止其他人加入,像這樣的鏈接:

<a href=evil><b>foo</b></a > 
+0

對不起,是我解析HTML – kole78

+0

很抱歉,但你能告訴我如何使用該功能,我的意思是如何保持聯繫爲一個域? – kole78

+0

請參閱文檔中的示例#2和#3,瞭解如何使用該功能。使用'var_dump()'查看輸入參數:它是一個包含捕獲的數組,非常類似'preg_match()'中的'$ match'參數。 –