PHP在两个字符串之间获取字符串

时间:2018-06-15 15:39:14

标签: php

所以我有一个由不同字符串组成的文件。一个例子是:

$ADDR:1234 This Address;$NAME:Mike Steve,$NAME:Julia Steve;$IP:139.0.0.35

现在的问题是它没有分隔一个东西,它由,;分隔而不是每个,都意味着它是一个新的领域(我知道它是可怕的数据)。

唯一真正划界的是每个字段都以$开头。

我需要能够将每个字段($之后的所有字段直到下一个$)存储到变量中。

我试过substr,但我似乎无法将其弄清楚。

非常感谢所有帮助!提前谢谢!

2 个答案:

答案 0 :(得分:2)

使用php中的爆炸功能:

$arr = explode("$",$string);

在$ arr中,你将拥有一个字符串数组,每个字符串都是一个字符串的子字符串,它是通过在$符号形成的边界上拆分而形成的。

更多信息here

答案 1 :(得分:0)

如果这是包含多行的大文件的一部分,则可以将每个变量作为数组中的项目 这样可以以后轻松访问这些值。

$str = '$ADDR:1234 This Address;$NAME:Mike Steve,$NAME:Julia Steve;$IP:139.0.0.35
        $ADDR:3456 This Address;$NAME:Steve,$NAME:Julia;$IP:139.0.0.36
        $ADDR:7890 This Address;$NAME:Mike,$NAME:Julia Steve;$IP:139.0.0.37';


Preg_match_all("/[$](\w+):(.*?)[\n|,|;]/", $str ."\n" , $m);
$i =-1;
Foreach($m[1] as $key => $val){
    If($val == 'ADDR') $i++; // replace '$ADDR' with what is first item on each line.
    $arr[$i][$val][] = $m[2][$key];
}

Var_dump($arr);

https://3v4l.org/DBsfr