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

Parsing a certain string only separated with spaces in PHP

我有一个字符串:

Type Type1 IP 192.168.0.1 Authorized No AllowMultiple Yes

所以这个字符串有变量: 类型、IP、授权和 AllowMultiple

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

例如,根据上面的字符串,我怎么能说:

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

将为您提供一个包含这些部分的数组。从那里您可以了解如何创建 value_from_string 函数。

$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
)

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

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