2011-06-28 4 views
0

私はテキストからすべてのリンクを除去するために、このコードを使用します。preg_replaceとそれの中の状態?

$文字列=にpreg_replace( "/ \] )>([^ <])\ </A>/I"、 "$ 2"、$文字列);

しかし、どういうわけか、google.comのようないくつかのドメインを指しているリンクを削除しないようにします。 したがって、他のすべてのURLは削除したいが、1つのドメインへのリンクを維持する。

preg_replaceにいくつかの条件を追加するにはどうすればよいですか?

答えて

2

条件にはpreg_replace_callback()を使用する必要があります。

しかし、HTMLを解析してDOMを操作するほうがよいでしょう。理由は、正規表現には常に何らかの欠陥があるからです。現在の1は、例えば、そのようなリンクの追加から誰かを防ぐことはできませんでしょう:

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

申し訳ありませんが、はい、私はリンクを維持する方法を意味し、私は、HTML – kole78

+0

申し訳解析が、あなたはどのようにその機能を使用する方法を教えてくださいすることができます1つのドメインのために? – kole78

+0

関数の使い方については、ドキュメントの例#2と#3を参照してください。入力引数を見るには 'var_dump()'を使います。これは 'preg_match()'の '$ match'引数のように、キャプチャを含む配列です。 –

関連する問題