Php 使用ASCII代码小于32的分隔符对字符串进行内爆
是否可以在分解/内爆函数中使用ASCII代码小于32的分隔符 我是说Php 使用ASCII代码小于32的分隔符对字符串进行内爆,php,implode,Php,Implode,是否可以在分解/内爆函数中使用ASCII代码小于32的分隔符 我是说 $v=explode(chr(29),$string) 或 $v=explode(chr(8),$string) 我试过严厉的方法,但我总是犯错误 内爆():传递的参数无效 如果可能的话,我怎么做 我正在处理一个PHP协议,请求一个URL:,该URL返回一个带有分隔符的HTML字符串 类似于name=John&age=32&gender=male但在“=”和“&”处有chr(9)和chr(31)。例如,如何使用chr(9)
$v=explode(chr(29),$string)
或
$v=explode(chr(8),$string)
我试过严厉的方法,但我总是犯错误
内爆():传递的参数无效
如果可能的话,我怎么做
我正在处理一个PHP协议,请求一个URL:,该URL返回一个带有分隔符的HTML字符串
类似于name=John&age=32&gender=male但在“=”和“&”处有chr(9)和chr(31)。例如,如何使用chr(9)ou chr(31)进行爆炸
我希望这些分隔符的字符代码小于32,以避免在键盘上获得的字符出现错误,所以我们的想法是使用字符代码小于32的chr(32)。我想我找到了解决方案
function str2array($orig = null)
{
$arr = $dta = [];
$val = null;
if(ord(substr($orig, -1)) != 31) $orig .= chr(31);
while(strlen($orig))
{
$byte = $orig[0];
if(ord($byte) == 8)
{
$dta[0] = $val;
$val = null;
}
elseif(ord($byte) == 31)
{
$dta[1] = $val;
$arr[$dta[0]] = $dta[1];
$val = null;
$dta = [];
}
else $val .= $byte;
$orig = substr($orig, 1);
};
return $arr;
};
我想我找到了解决办法
function str2array($orig = null)
{
$arr = $dta = [];
$val = null;
if(ord(substr($orig, -1)) != 31) $orig .= chr(31);
while(strlen($orig))
{
$byte = $orig[0];
if(ord($byte) == 8)
{
$dta[0] = $val;
$val = null;
}
elseif(ord($byte) == 31)
{
$dta[1] = $val;
$arr[$dta[0]] = $dta[1];
$val = null;
$dta = [];
}
else $val .= $byte;
$orig = substr($orig, 1);
};
return $arr;
};
您是否可以发布一个复制错误的实际示例,以便其他人可以测试它。您可能希望查看URL编码数据-。您是否可以发布一个复制错误的实际示例,以便其他人可以测试它。您可能希望查看URL编码数据-。