如果字符串以数字开头并包含引号,则PHP addslashes无法按预期工作

我有一个带有文本框’size_txt’的表单,它存储表示大小选择的字符串.

<input type="text" name="size_txt" id="size_txt" style="display: none;" /> 

该值将发布到另一个页面并由此代码检索

$new_size=addslashes($_POST['size_txt']);

不幸的是,它需要存储英寸的缩写,即“引号”

如果字符串是’10“中’,则$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);

如果你有问题,请告诉我.

问候

点赞