2012-05-01 36 views
0

在我的網站,我想有這樣的的preg_replace()[function.preg替換]:未知的修飾詞「/」在/ home/

www.abc.comhttp://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其中PLZ告訴 – 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)時,我的左側菜單已消失。返回$味精; – Steeve

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

你要麼需要在中間的兩個//逃到\/\/,或者更好的,使用對於正則表達式不同的分隔符:

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

工作。我還沒有想到這個小錯誤.thx – Steeve

+0

現在它的工作錯誤已經但是當我使用$味精=的preg_replace($ search_array,$ replace_array,$味精)我的左邊菜單disappering; 返回$味精; – Steeve

相關問題