我尝试重新创建 URL 但找不到编码函数
Edit:
背景:
该字符串用于 API(当然没有文档),我尝试使用原始网址编码但似乎只有原始的编码/解码功能有效,所以我必须找到它是什么......
$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, 原始网址编码但它们取代了括号和“*”..
该字符串是从 PHP(可能是 Javascript)为 URL 创建的。
Edit
base64_编码- 破坏字符串..
html实体- 没有做出改变..
不寻找“最佳网址编码功能”..只需要重新创建没有自定义替换功能的示例。
Edit3
好的,我做了一些更多的调试,这是大部分替换表:
% - %25
^ - %5E
+ - %2B
{ - %7B
[ - %5B
} - %7D
] - %5D
" - %22
| - %7C
\ - %5C
>
- %3E
“” - %20
可能是 SQL 的某种转义,该字符串稍后会转换为查询。
您正在寻找 JavaScript 的 PHP 实现编码URI() https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURI功能。开始了:
function encodeURI($uri)
{
return preg_replace_callback("{[^0-9a-z_.!~*'();,/?:@&=+$#]}i", function ($m) {
return sprintf('%%%02X', ord($m[0]));
}, $uri);
}
现在你已经得到了你想要的。
Demo: https://eval.in/65314 https://eval.in/65314
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)