如何在PHP中将服务器返回的查询字符串转换为数组?
在PHP中将URL参数字符串转换为数组的方法
嘿,这个需求其实用PHP自带的工具就能轻松搞定,不过得先处理一下字符串里的HTML转义字符,我给你一步步拆解:
首先,你拿到的字符串里的&是HTML实体化后的&符号,直接解析的话会出错,所以第一步得把它转成正常的&。之后用PHP的parse_str()函数,就能一键把键值对格式的字符串转换成数组了。
直接上代码示例,一看就明白:
// 你从服务器获取到的原始字符串 $rawString = 'Id=6528537&CCode=250&Fild1=&Fild2=&Fild3=&HeshASM=0'; // 第一步:解码HTML实体,把&转换为& $decodedString = html_entity_decode($rawString); // 第二步:用parse_str将字符串解析为数组 parse_str($decodedString, $resultArray); // 查看转换后的数组 print_r($resultArray);
运行这段代码后,你会得到这样的数组结果:
Array ( [Id] => 6528537 [CCode] => 250 [Fild1] => [Fild2] => [Fild3] => [HeshASM] => 0 )
这里要提醒一下parse_str()的第二个参数:如果不传这个参数,函数会把每个键值对直接创建成当前作用域的变量,这可能引发变量冲突或者安全问题,所以最好传入一个变量来接收结果数组,这样更规范安全。
要是你拿到的字符串本身就是用&分隔的(没有HTML实体),那可以跳过第一步的解码,直接用parse_str()就行。
内容的提问来源于stack exchange,提问作者Dani Evan Rubenstien
相关产品推荐
相关产品推荐

