Раздень Струну в Колоне - PullRequest
2 голосов
/ 02 марта 2010

У меня есть текстовая область, куда пользователь копирует и вставляет все сообщение:

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 ]

3 голосов
/ 02 марта 2010

в одну сторону

$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 голосов
/ 02 марта 2010

Гарантируется ли, что каждый будет на своей линии и в таком порядке? Тогда вы сможете explode всю строку в \n, а затем explode каждую строку в :. Это быстрый и грязный подход. Кроме того, вы должны проходить построчно и смотреть в начале строки, соответствует ли текст перед первым двоеточием требуемой переменной, и, если это так, анализировать его в соответствии с предопределенными правилами синтаксического анализа (например, отбрасывать «байты» из значения файла размера). ).

...