PHP - 将字符串分隔为多个部分

时间:2014-12-06 19:32:37

标签: php

我有一个字符串:

2014-12-06 01:08:14 Andrew (76561198093241035) killed Moraiti () with weapon hgun_PDW2000_F

我需要能够将这个字符串分成单独的部分,如下所示:

2014-12-06 01:08:14
Andrew
(76561198093241035)
Moraiti
hgun_PDW2000_F

问题是我不知道每件物品会有多少个字符。这甚至可能吗?

2 个答案:

答案 0 :(得分:1)

您可以使用正则表达式:

$pat = '/^(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}) (.+?) (\((?:\d{17}|)\)) killed (.+?) (\((?:\d{17}|)\)) with weapon (.+)$/';
$str = '2014-12-06 01:08:14 Andrew (76561198093241035) killed Moraiti () with weapon hgun_PDW2000_F';
preg_match($pat, $str, $matches);
var_dump($matches);
array(7) {
  [0]=>
  string(91) "2014-12-06 01:08:14 Andrew (76561198093241035) killed Moraiti () with weapon hgun_PDW2000_F"
  [1]=>
  string(19) "2014-12-06 01:08:14"
  [2]=>
  string(6) "Andrew"
  [3]=>
  string(19) "(76561198093241035)"
  [4]=>
  string(7) "Moraiti"
  [5]=>
  string(2) "()"
  [6]=>
  string(14) "hgun_PDW2000_F"
}

答案 1 :(得分:1)

您还可以使用explode将字符串转换为数组。使用您指定的字符串,您将使用空格作为分隔符,然后您可以获得该数组的各种元素。

示例:

$str = '2014-12-06 01:08:14 Andrew (76561198093241035) killed Moraiti () with weapon hgun_PDW2000_F';
$array = explode(' ', $str);

echo $array[0].' '.$array[1].PHP_EOL;
echo $array[2].PHP_EOL;
echo $array[3].PHP_EOL;
echo $array[5].PHP_EOL;
echo $array[9].PHP_EOL;

结果:

  

2014-12-06 01:08:14

     

安德鲁

     

(76561198093241035)

     

Moraiti

     

hgun_PDW2000_F

如果您想使用数组的其他部分,请使用var_dump($array);找出哪些部分,