我有一个带有文本框“size_txt”的表单,其中存储了一个表示尺寸选择的字符串。
<input type="text" name="size_txt" id="size_txt" style="display: none;" />
该值被发布到另一个页面并通过此代码检索
$new_size=addslashes($_POST['size_txt']);
不幸的是它需要存储英寸的缩写,即 "引号
如果字符串是 '10"medium' 那么 $new_size 的值为 '10'
然而,如果字符串是 'medium 10"' 那么 $new_size 的值是 'medium 10/"'
有没有其他人遇到过这种行为并想出了解决办法?
感谢您的帮助
最佳答案
是的,问题就在那里。
请注意,在包含西里尔字符的字符串上使用 addslashes() 时,addslashes() 会完全混淆字符串,使其无法使用。
解数
1) 使用 mysql_real_escape_string 而不是 addslashes
2) 试试下面的代码,比如 str_replace
$myString = str_replace("'", "\'", $myString);
$myString = str_replace('"', "'+String.fromCharCode(34)+'", $myString);
如果您还有问题,请告诉我。
问候
关于如果字符串以数字开头并包含引号,则 PHP addslashes 无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18937354/