这种编码是什么?如何在PHP中对字符串进行编码?
我有这样一个输入:这种编码是什么?如何在PHP中对字符串进行编码?,php,character-encoding,Php,Character Encoding,我有这样一个输入: $input = 'GFL/R&D/50/67289'; 我正在努力做到这一点: GFL$2fR$26D$2f50$2f67289 到目前为止,我最接近的是: echo filter_var($input, FILTER_SANITIZE_ENCODED, FILTER_FLAG_ENCODE_LOW) 产生: GFL%2FR%26D%2F50%2F67289 我如何从给定的输入到期望的输出,结果是什么样的编码 顺便说一下,请注意这里的区分大小写$2f是必需的
$input = 'GFL/R&D/50/67289';
我正在努力做到这一点:
GFL$2fR$26D$2f50$2f67289
到目前为止,我最接近的是:
echo filter_var($input, FILTER_SANITIZE_ENCODED, FILTER_FLAG_ENCODE_LOW)
产生:
GFL%2FR%26D%2F50%2F67289
我如何从给定的输入到期望的输出,结果是什么样的编码
顺便说一下,请注意这里的区分大小写
$2f
是必需的,而不是$2f
这将实现以下技巧:url编码,然后对编码序列进行小写,并使用preg回调将%
交换为$
(PHP的PCRE不支持大小写转换修饰符):
输出:
GFL$2fR$26D$2f50$2f67289
不知道,但在最坏的情况下,您可以尝试一个简单的
str_替换(“%”、“$”、$str)
@MarcB由于区分大小写的问题,它将不起作用-filter var大写表示结果,因此我不确定是否能够可靠地找到结果中编码值的部分,以便仅将这些部分小写。尽管我仍然好奇是否使用了特定的编码,或者只是一个卑鄙的urlencode版本。
GFL$2fR$26D$2f50$2f67289