在PHP中解析仅用空格分隔的特定字符串
我有一个字符串: 类型1 IP 192.168.0.1授权否允许多个是 所以这个字符串有变量: 类型、IP、授权和允许多个在PHP中解析仅用空格分隔的特定字符串,php,string,parsing,Php,String,Parsing,我有一个字符串: 类型1 IP 192.168.0.1授权否允许多个是 所以这个字符串有变量: 类型、IP、授权和允许多个 Type的值是Type1 IP的值是192.168.0.1 授权的值为“否” AllowMultiple的值为Yes 如何仅从该字符串格式解析以获取每个变量的值 例如,从上面的字符串中,我将如何说: $type = value_from_string('Type', $str); 将为您提供一个包含这些碎片的阵列。从这里,您可以了解如何从字符串创建值 $s = "Ty
- Type的值是Type1
- IP的值是192.168.0.1
- 授权的值为“否”
- AllowMultiple的值为Yes
$type = value_from_string('Type', $str);
将为您提供一个包含这些碎片的阵列。从这里,您可以了解如何从字符串创建值
$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);
如果您想要像$Type
这样的普通变量,您可能需要添加提取($arr)
。
另一种实现方法是删除数组并动态创建变量:
for($i=0;$i<count($s);$i+=2) $$s[$i] = $s[$i+1];
echo $Type;
echo $IP;
用于($i=0;$i用于澄清:字符串格式是否稳定,即Type
是否始终是第一个组件,或者您是否根据变量Type
位于子字符串Type
之后的事实推导出Type1
是变量Type
的值这一事实,但对Type1
可能位于e字符串的nd?字符串的顺序总是一样的。Type1只是一个巧合,里面有“Type”这个词。但是现在一切都好了!非常感谢!我想我可以像第一个人那样使用每秒的倍数。谢谢。
Array
(
[Type] => Type1
[IP] => 192.168.0.1
[Authorized] => No
[AllowMultiple] => Yes
)
for($i=0;$i<count($s);$i+=2) $$s[$i] = $s[$i+1];
echo $Type;
echo $IP;