我尝试重新创建一个网址但找不到编码功能
修改
背景:
该字符串用于API(没有文档的文档),我尝试使用 rawurlencode 但似乎只有原始的编码/解码函数工作,所以我必须找到它是什么......
$input = "2/3*( ((word*888) )>(word2 AND ((word3*888))/word4>888";
$encoded = "2/3*(%20((word*888)%20)%3E(word2%20AND%20((word3*888))/word4%3E2888";
尝试使用 urlendode , rawurlencode ,但他们会替换括号和“*”..
为PHP的URL创建字符串(可能是Javascript)。
修改
base64_encode - 销毁字符串..
htmlentities - 没有进行更改..
不寻找“最佳网址编码功能”..只需重新创建没有自定义替换功能的示例。
EDIT3
好的我做了一些更多的调试,这是替换表的大部分内容:
% - %25
^ - %5E
+ - %2B
{ - %7B
[ - %5B
} - %7D
] - %5D
“ - %22
| - %7C
\ - %5C
< - %3C
>
- %3E
“” - %20
可能是SQL的某种转义,后来该字符串转换为查询。
答案 0 :(得分:1)
您正在寻找JavaScript encodeURI()函数的PHP实现。我们走了:
function encodeURI($uri)
{
return preg_replace_callback("{[^0-9a-z_.!~*'();,/?:@&=+$#]}i", function ($m) {
return sprintf('%%%02X', ord($m[0]));
}, $uri);
}
现在你的确拥有你想要的东西。