2012-03-07 70 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