Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这种编码是什么?如何在PHP中对字符串进行编码?_Php_Character Encoding - Fatal编程技术网

这种编码是什么?如何在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