2012-03-07 32 views
0

我有一個字符串:PHP字符串 - 轉義單引號(用於jqGrid的選擇框)

$departmentList = "value:'16:NAR,JR'S OFFICE;17:MFR'S OFFICE;18:NAR/MFR JOINT OFFICE'" 

我的問題是,單引號,你可以在JR'S OFFICEMFR's OFFICE過早地結束我的字符串見。我可以使用單引號切換雙引號,反之亦然,但這些來自用戶輸入的值。如果用戶輸入了雙引號,我會和現在一樣在同一條船上。

有關如何保持此字符串的完整性,同時具有單引號和雙引號的任何想法?

順便說一句,不知道這會影響什麼,但 - 我把我的$ departmentList串入一個jqGrid的構建值選擇框。

+0

你從哪裏得到的值?數據庫?表單?因爲在你的例子中,單引號不是問題。 – bfavaretto 2012-03-07 16:18:05

+1

更重要的是,該字符串將如何被使用。在哪種情況下會結束。如果你使用它作爲JS字符串(你應該在oyur問題中告訴),那麼['json_encode()'](http://php.net/json_encode)將是合適的轉義函數。不要只用自己的單引號或雙引號包裝它。 – mario 2012-03-07 16:19:54

回答

2

使用addslashes來代替"\"'\'

+0

BOOM!那樣做了。順利,快捷,謝謝xato。 – FastTrack 2012-03-07 16:23:26

1

如果您正在使用的數據庫目的輸入更好的使用mysql_real_escape_string()

$departmentList = "value:'16:NAR,JR'S OFFICE;17:MFR'S OFFICE;18:NAR/MFR JOINT OFFICE'"; 
$data = mysql_real_escape_string($departmentList); 
+0

是的,但是我的字符串已經從SELECT語句構建。我只是在javascript中使用這個字符串。感謝您的提示,但! – FastTrack 2012-03-07 16:32:10