2013-10-26 39 views
0

嗨內替換字符串我有以下的搜索表單:PHP的字符串

<form method='get'><input type='text' name='searchvalue' value='<? if (isset($_GET['searchvalue'])) echo $_GET['searchvalue'];?>' />&nbsp;<input type='submit' value='Search' /><input type='hidden' name='pagenum' value='1' /></form> 

這是訪問的API並返回搜索結果,當我搜索的數據發送到一個WordPress插件的一部分API,file_get_contents("$api_url/book/index.php/name/$searchvalue?key=$api_key");查詢,如果有空間,需要進行格式化這樣的:This%20Is%20An%20Example而是被格式化像這樣:This+Is+An+Example

我會用str_replace()因爲如此,以取代加號:str_replace("+", "%20", $searchvalue);,但它不」 t似乎在工作!

有什麼建議嗎?

回答

2

使用rawurlencode()函數。

$searchvalue = rawurlencode($searchvalue); 

這將解決您的問題。

-1
  1. 按照該文件,鏈接到由卡西米爾等伊波利特提到PHP手冊,第一個參數是搜索字符串,在你的情況'+'中,第二個參數是在你的案例'%20'中搜索將被替換的字符串。所以你的命令似乎是正確的。

  2. 但確保您將函數值的返回值賦值給變量,因爲str_replace不會像對象上的方法那樣更改給定的字符串值。它是函數,它「僅」返回更改的字符串作爲值。

從事實

除了:

  • 手動修改WP插件通常不是一個好主意
  • WP與它的插件是非常複雜的系統,有時很難破譯所有與執行的代碼操作。儘可能總是在類似的情況下測試最低限度,有問題的部分代碼分開由WordPress。
+0

這是我的插件,我正在創建,我有它在SVN .... –