2012-05-01 6 views
0

は、私はこのにpreg_replace()[function.pregが-置き換える]:不明な修飾子「/」に/ホーム/私のウェブサイトで

www.abc.comまたはhttp://abc.com

に置き換えられますのようないくつかの他のリンクとリンクを交換したいです

http://www.XXXXXX.com/sonal?www.abc.com

または

http://www.XXXXXX.com/sonal?http://abc.com

ので、私はUSIていますNGこのコードが、このコードは、いくつかのエラーに

Warning: preg_replace() [function.preg-replace]: Unknown modifier '/' in /home/XXXXX/public_html/YYYYYYYYY/KKKKKK.php on line 495

$search_array = array(
    "/\[url]www|http://.([^'\"]*)\[\/url]/iU", 
    "/\[url]([^'\"]*)\[\/url]/iU", 
    "/\[url=www|http://.([^'\"\s]*)](.*)\[\/url]/iU", 
    "/\[url=([^'\"\s]*)](.*)\[\/url]/iU" 
); 
$replace_array = array(
    "<a href=\"http://XXXXXX.com/sonal?.\\1\" target=\"_blank\" rel=\"nofollow\">www. \\1</a>", 
    "<a href=\"\\1\" target=\"_blank\" rel=\"nofollow\">\\1</a>", 
    "<a href=\"http://XXXXXX.com/sonal?.\\1\" target=\"_blank\" rel=\"nofollow\">\\2</a>", 
    "<a href=\"\\1\" target=\"_blank\" rel=\"nofollow\">\\2</a>" 
); 

$msg = preg_replace($search_array, $replace_array, $msg); 
return $msg; 
+0

はHTTP '後のエスケープ'/'文字のように見えることを解決するために、いくつかの方法があります: 「 – Hamish

+0

@hamish where plz tell – Steeve

+1

*」「http: '」* – deceze

答えて

6

エスケープ "/"

$search_array = array(
    "/\[url]www|http:\/\/.([^'\"]*)\[\/url]/iU", 
    "/\[url]([^'\"]*)\[\/url]/iU", 
    "/\[url=www|http:\/\/.([^'\"\s]*)](.*)\[\/url]/iU", 
    "/\[url=([^'\"\s]*)](.*)\[\/url]/iU" 
); 

または "#" のように別の正規表現区切り文字を使用して

$search_array = array(
    "#\[url]www|http://.([^'\"]*)\[\/url]#iU", 
    "#\[url]([^'\"]*)\[\/url]#iU", 
    "#\[url=www|http://.([^'\"\s]*)](.*)\[\/url]#iU", 
    "#\[url=([^'\"\s]*)](.*)\[\/url]#iU" 
); 
+0

エラーが発生しましたが、$ msg = preg_replace($ search_array、$ replace_array、$ msg)を使用すると、左側のメニューが消えています。 $ msgを返します。 – Steeve

4
"/\[url]www|http://.([^'\"]*)\[\/url]/iU", 
^    ^^    ^

を与えているあなたのどちらかが、より良い、使用することを\/\/に途中で2 //をエスケープする、またはする必要があります正規表現の異なるデリミタ:

"~\[url]www|http://.([^'\"]*)\[/url]~iU", 
+0

働いていました.iこの小さな誤りを考えていません.thx – Steeve

+0

エラーの処理は終了しましたが、$ msg = preg_replace($ search_array、$ replace_array、$ msg)を使用すると、左側のメニューが消えています。 返信$ msg; – Steeve

関連する問題