所以我有一个由不同字符串组成的文件。一个例子是:
$ADDR:1234 This Address;$NAME:Mike Steve,$NAME:Julia Steve;$IP:139.0.0.35
现在的问题是它没有分隔一个东西,它由,
和;
分隔而不是每个,
都意味着它是一个新的领域(我知道它是可怕的数据)。
唯一真正划界的是每个字段都以$
开头。
我需要能够将每个字段($
之后的所有字段直到下一个$
)存储到变量中。
我试过substr
,但我似乎无法将其弄清楚。
非常感谢所有帮助!提前谢谢!
答案 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);