代码之家  ›  专栏  ›  技术社区  ›  Dodinas

在冒号处去掉一根线

  •  2
  • Dodinas  · 技术社区  · 14 年前

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

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

    任何帮助都很好!谢谢。

    2 回复  |  直到 14 年前
        1
  •  3
  •   ghostdog74    14 年前

    单程

    $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);
    
        2
  •  2
  •   pr1001    14 年前

    有没有保证每个人都会按照自己的顺序排队?那么你也许可以 explode 整个字符串 \n 然后 爆炸 每行 : . 这是一种快速而肮脏的方法。除此之外,您应该逐行查看第一个冒号前的文本是否与所需变量匹配,如果匹配,则根据预先确定的解析规则对其进行解析(例如,从文件大小值中删除“bytes”)。