2

我有一个文本区域,用户在其中复制并粘贴整个消息:

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 或其他东西。但我不太确定从哪里开始?

任何帮助都会很棒!谢谢。

4

2 回答 2

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);
于 2010-03-02T01:38:34.733 回答
2

是否保证每个人都会在自己的线上并按顺序排列?然后,您可能可以explode将整个字符串打开\n,然后将explode每一行打开:。这是一种快速而肮脏的方法。除此之外,您应该逐行查看行首第一个冒号之前的文本是否与所需的变量匹配,如果是,则根据预定的解析规则对其进行解析(例如,从文件大小值中删除“字节” )。

于 2010-03-02T01:39:03.413 回答