解析在PHP中仅用空格分隔的某个字符串

时间:2015-02-03 20:19:57

标签: php string parsing

我有一个字符串:

  

类型Type1 IP 192.168.0.1授权否AllowMultiple是

所以这个字符串有变量: Type,IP,Authorized和AllowMultiple

  • 类型值为Type1
  • IP的值为192.168.0.1
  • 授权值为否
  • AllowMultiple的值为是

如何从该字符串格式解析以获取每个变量的值?

例如,从上面的字符串中,我怎么能说:

$type = value_from_string('Type', $str);

2 个答案:

答案 0 :(得分:0)

$arr = explode(' ', 'Type Type1 IP 192.168.0.1 Authorized No AllowMultiple Yes');

会给你一个包含每个部分的数组。从那里,您可以了解如何创建value_from_string功能。

答案 1 :(得分:0)

$s = "Type Type1 IP 192.168.0.1 Authorized No AllowMultiple Yes";

$s = explode(' ', $s);
$arr = [];
for($i=0;$i<count($s);$i+=2) $arr[$s[$i]] = $s[$i+1];

print_r($arr);

给我们:

Array
(
    [Type] => Type1
    [IP] => 192.168.0.1
    [Authorized] => No
    [AllowMultiple] => Yes
)

如果您想要extract($arr)等简单变量,则可能需要添加$Type 实现它的另一种方法是删除数组并动态创建变量:

for($i=0;$i<count($s);$i+=2) $$s[$i] = $s[$i+1];
echo $Type;
echo $IP;