这是我的字符串:$ 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_strhttp://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"

08-18 22:00