PHP-FILTER_SANITIZE_ENCODED无法正常工作

问题描述 投票:2回答:1

首先,我想知道什么是FILTER_SANITIZE_ENCODED默认标志?

以及当我尝试时:

filter_var('α', FILTER_SANITIZE_ENCODED, FILTER_FLAG_ENCODE_LOW);

['α'ascii是224,当我使用FILTER_FLAG_ENCODE_LOW时,它应该对小于32的ascii值进行编码。但是当我输入224 ascii字符时,它将得到编码。

((edit)我不想对127以上的ascii字符进行编码,但它返回'%CE%B1']

php
1个回答
0
投票

不确定我确切地了解您想要什么,但是..这行得通吗?

function encode(string $str):string{
$ret="";
for($i=0,$max=strlen($str);$i<$max;++$i){
if(ord($str[$i]) > 127){$ret.=$str[$i];}else{$ret.=urlencode($str[$i]);}
}
return $ret;
}

它对所有字符进行编码,但uint8值大于127的字符除外,这些字符保持不变。这就是您想要的吗?

© www.soinside.com 2019 - 2024. All rights reserved.