使用ajax get方法传递变量。我在哪里使用escape()函数来转义字符串。
在php中,我收到了值并插入到数据库中。
如何取消字符串?
例如,对于:
balaji's
我得到了
balaji%27s.
答案 0 :(得分:9)
您可以使用此功能代替urldecode()
function utf8_urldecode($str) {
return html_entity_decode(preg_replace("/%u([0-9a-f]{3,4})/i", "&#x\\1;", urldecode($str)), null, 'UTF-8');
}
答案 1 :(得分:9)
使用我已完成的
用htmlspecialchars(urldecode($ STR))
答案 2 :(得分:4)
使用escape
而不是在客户端使用encodeURIComponent
。 escape
不执行URI编码。 (它做了类似的事情,但又不同以至于你会遇到麻烦。)encodeURIComponent
执行标准的URI编码。如果您以正常方式发送数据,PHP应自动为您解码,例如:
var word = "balaji's";
$.ajax({
url: "yoururl",
data: encodeURIComponent("word") + "=" + encodeURIComponent(word)
});
如果您没有以默认的“多部分表单”形式发送数据(例如,您要覆盖dataType
),则必须通过urldecode
自行解码。
答案 3 :(得分:1)
答案 4 :(得分:-2)
作为最后的选择,您可以尝试类似的操作(此列表并不详尽,您可以自己制作或完成)
$search = ["%20",'%3C','%3E','%3D','%22','%3A','%3B','%E0','%E9','%E8','%26','%E2', '%u2019'];
$replace = [' ', '<', '>', '=','"',':',';','à','é','è','&','â', '\''];
str_replace($search, $replace, $your_str);