2012-02-02 12 views
2

一部のテキストにhtmlタグが含まれていますが、すべてのリンクを他のものと置き換えていますが、ローカルリンクのみを置き換えたいのですが、http:// :preg_replaceを除外パターンと置き換える方法

<a href="local_link">test link</a> 
    ==> <a href="local_link_to_be_replace?url=local_link">test link</a> 
<a href="http://www.youtube.com">Video</a> 
    ==> <a href="http://www.youtube.com">Video</a> 

私はこれにpreg_replaceを試してみたが動作していない:

$exclude = '<a href=\"http://.*?'; 
$pattern = '<a href=\".*?'; 
$content=preg_replace("~(($exclude)?($pattern))~i",'<a href="/action.php?url=$4',$content); 

ありがとう!

+1

少しヒント:あなたは、あなたの置き換えパターンで第四サブパターン '$ 4'を参照していますが、3つのブラケットを開いてから、実際にわずか3があるされています。 – tim

答えて

2

何、このようなものについて:

$content = preg_replace('#<a href="([^:]*)">#i', '<a href="/action.php?url=$1">', $content); 
+0

ありがとう男それは仕事:) –