我如何取消字符串?

时间:2011-05-05 07:13:46

标签: php javascript escaping

使用ajax get方法传递变量。我在哪里使用escape()函数来转义字符串。

在php中,我收到了值并插入到数据库中。

如何取消字符串?

例如,对于:

balaji's

我得到了

balaji%27s.

5 个答案:

答案 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而不是在客户端使用encodeURIComponentescape 执行URI编码。 (它做了类似的事情,但又不同以至于你会遇到麻烦。)encodeURIComponent执行标准的URI编码。如果您以正常方式发送数据,PHP应自动为您解码,例如:

var word = "balaji's";
$.ajax({
    url: "yoururl",
    data: encodeURIComponent("word") + "=" + encodeURIComponent(word)
});

如果您没有以默认的“多部分表单”形式发送数据(例如,您要覆盖dataType),则必须通过urldecode自行解码。

答案 3 :(得分:1)

考虑PHP函数urldecode()rawurldecode()

似乎有一个区别在于处理+(加号)。

您应该确保使用包含加号的字符串进行测试,以确保您选择了正确的函数。

答案 4 :(得分:-2)

作为最后的选择,您可以尝试类似的操作(此列表并不详尽,您可以自己制作或完成)

$search = ["%20",'%3C','%3E','%3D','%22','%3A','%3B','%E0','%E9','%E8','%26','%E2', '%u2019'];
$replace = [' ', '<', '>', '=','"',':',';','à','é','è','&','â', '\''];

str_replace($search, $replace, $your_str);