朋友,我目前正在使用以下function
至encode
我的数据并通过GET
方法发送...我正在使用ajax
发送和{{ 1}}接收他们......
php
将字符串传递给function urlencode(a){
a=encodeURIComponent(a);
a=a.replace(/\\/g,'%5C');
a=a.replace(/!/g,'%21');
a=a.replace(/'/g,'%27');
a=a.replace(/\(/g,'%28');
a=a.replace(/\)/g,'%29');
a=a.replace(/\*/g,'%2A');
a=a.replace(/~/g,'%7E');
a=a.replace(/%20/g,'+');
a=a.replace(/%26amp%3B/gi,'%26');
a=a.replace(/%26lt%3B/gi,'%3C');
a=a.replace(/%26gt%3B/gi,'%3E');
a=a.replace(/%26nbsp%3B/gi,'%C2%A0');
return a;
}
后,我使用了额外的encodeURIComponent()
方法,以便函数将链接的字符串编码为 类似 replace()
...
现在我的问题是,有人知道做同样事情的任何简短或简单的替代方法......
我只将这个问题放在 学习目的 ... no jQuery please ...
答案 0 :(得分:0)
使用escape()
instead of encodeURIComponent
将至少消除您正在使用的部分replace()。 E.g:
function urlencode(a){
return escape(a);
.replace(/\*/g,'%2A');
.replace(/%20/g,'+');
.replace(/%26amp%3B/gi,'%26');
.replace(/%26lt%3B/gi,'%3C');
.replace(/%26gt%3B/gi,'%3E');
.replace(/%26nbsp%3B/gi,'%C2%A0');
}
答案 1 :(得分:0)
如果要将JS的GET请求发送给PHP,则应使用
urldecode()
d;请阅读其链接文档中的备注部分)如果您必须在PHP中对内容进行网址编码,请使用urlencode()
,保证与相应的urldecode()
兼容。
如果您想“自己”学习如何操作,请阅读相应库中的源代码,以确保您不会错过任何场景......重新实现库函数通常是一个坏主意