這是一個後續問題的一個I posted here(感謝mario)PHP的preg_replace問題
好了,我有一個的preg_replace語句sometext
替換URL字符串,從查詢字符串插入值(使用$_GET["size"]
)和插入來自關聯數組的值(使用$fruitArray["$1"]
回參考)
輸入URL字符串將是:
http://mysite.com/script.php?fruit=apple
輸出字符串應是:
http://mysite.com/small/sometext/green/
的PHP我有如下:
$result = preg_replace('|http://www.mysite.com/script.php\?fruit=([a-zA-Z0-9_-]*)|e', ' "http://www.mysite.com/" .$_GET["size"]. "/sometext/" .$fruitArray["$1"]. "/"', $result);
此代碼輸出以下字符串:
http://mysite.com/small/sometext//
代碼似乎跳過$fruitArray["$1"]
值。
我錯過了什麼?
謝謝!
當問這樣一個問題,你應該完全刪除$ _GET和$ fruitArray並使用常量來將問題本地化到preg_replace。也許你的變量是空的,我們無法確定它 – 2011-05-12 17:23:57
@Riccardo Galli你在那裏是非常正確的,經驗教訓 - 必須停止在fag數據包的背面寫入php並移動到PHP IDE - 你有什麼建議嗎? ?我是一個新手:/乾杯。 – Matt 2011-05-12 19:23:18
通過重寫一些前面的代碼來解決這個問題;我有其他的preg_replace調用干擾的URL字符串:/也許我的代碼上面是半 - OK :-)這個項目開始很小,但現在它的數百和數百行代碼 - 對所有的道歉 - 我很欣賞答案,歡呼! – Matt 2011-05-12 19:28:59