这是我的字符串:$ string =“ VARHELLO = helloVARWELCOME = 123qwa”;
我想从字符串中获取“ hello”和“ 123qwa”。
我的伪代码是。
如果/ ^ VARHELLO /存在
打招呼(或在VARHELLO之后和VARWELCOME之前发生的任何事情)
如果/ ^ VARWELCOME /存在
得到123qwa(或VARWELCOME之后的任何东西)
注意:“ VARHELLO”和“ VARWELCOME”中的值是动态的,因此“ VARHELLO”可以是“ H3Ll0”或VARWELCOME可以是“ W3l60m3”。
例:
$ string =“ VARHELLO = H3Ll0VARWELCOME = W3l60m3”;
最佳答案
这是一些代码,它将为您解析此字符串为更可用的数组。
<?php
$string="VARHELLO=helloVARWELCOME=123qwa";
$parsed = [];
$parts = explode('VAR', $string);
foreach($parts AS $part){
if(strlen($part)){
$subParts = explode('=', $part);
$parsed[$subParts[0]] = $subParts[1];
}
}
var_dump($parsed);
输出:
array(2) {
["HELLO"]=>
string(5) "hello"
["WELCOME"]=>
string(6) "123qwa"
}
或者,使用
parse_str
(http://php.net/manual/en/function.parse-str.php)的替代方法<?php
$string="VARHELLO=helloVARWELCOME=123qwa";
$string = str_replace('VAR', '&', $string);
var_dump($string);
parse_str($string);
var_dump($HELLO);
var_dump($WELCOME);
输出:
string(27) "&HELLO=hello&WELCOME=123qwa"
string(5) "hello"
string(6) "123qwa"