我有一个textarea,用户可以复制并粘贴整个邮件:
Time(UTC): 2010-02-27T21:58:20.74Z
Filesize : 9549920 bytes
IP Address: 192.168.1.100
IP Port: 59807
使用PHP,我如何自动化并将其解析为4个单独的变量,如下所示:
<?php
$time = 2010-02-27T21:58:20.74Z;
$filesize = 9549920;
$ip = 192.168.1.100;
$port = 59807;
我可以说每一行都有冒号,所以我认为这可能与它有关。我不确定我是否需要使用substr或者其他东西。但是我不太确定从哪里开始呢?
任何帮助都会很棒!感谢。
答案 0 :(得分:3)
单程
$textarea=<<<EOF
Time(UTC): 2010-02-27T21:58:20.74Z
Filesize : 9549920 bytes
IP Address: 192.168.1.100
IP Port: 59807
EOF;
$s = explode("\n\n",$textarea);
foreach ($s as $k=>$v){
list($a,$b) = array_map(trim,explode(": ",$v));
# or use explode(":",$v,2) as jason suggested.
$array[$a]=$b;
}
print_r($array);
答案 1 :(得分:2)
是否可以保证每个人都按照自己的顺序排列?然后,您可以explode
\n
上的整个字符串explode
,然后:
{{1}}上的每一行{{1}}。这是一种快速而肮脏的方法。除此之外,你应该逐行浏览并查看行的开头是否第一个冒号之前的文本是否匹配所需的变量,如果是,则根据预定的解析规则解析它(例如从文件大小值中删除'bytes' )。