拆分在php中分隔的字符串数据的最佳方法是什么

时间:2010-12-13 19:34:50

标签: php

寻找php帮助,最佳实践。什么是打破这些界限的好方法?我正在研究爆炸还是更好的正则表达式?然后可能将它们显示在一张桌子里?谢谢你的意见。

输入文件:

PRE:abc:KEY1:null:KEY2:/myproject/data/dat_abc_2010120810.gz1
PRE:def:KEY1:sdsu:KEY2:mail_abc.dat.2010120810.gz1

显示的预期输出或网页:

PRE  KEY1 KEY2
===  ==== ======================================
abc  null /myproject/data/dat_abc_2010120810.gz1
def  sdsu mail_abc.dat.2010120810.gz1

2 个答案:

答案 0 :(得分:6)

如果你有这样的文件,如果我是你,我会分两步完成......

第一步

使用file()获取表示文件的数组。

第二步

现在您可以使用 explode()获取所有不同的列并输出它们。

快速举例:

<?php
$output = "";

$file = file("data.txt");
foreach ($file as $line)
{
    $cols = explode (":", $line);
    $output .= "{$cols[0]} {$cols[1]}";
}
?>

希望这有帮助。

答案 1 :(得分:4)

explode可以正常使用:

$fp = fopen('myfile.txt', 'r');
while ($line = fgets($fp))
   $parts = explode(':', $line);
   $array = array();
   for ($i=0; $i<count($parts); $i+=2) {
      $array[$parts[$i]] = isset($parts[$i+1]) ? $parts[$i+1] : 'null';
   }
   print_r($array);
}

将输出:

Array
(
    [PRE] => abc
    [KEY1] => null
    [KEY2] => /myproject/data/dat_abc_2010120810.gz1
)
Array
(
    [PRE] => def
    [KEY1] => sdsu
    [KEY2] => mail_abc.dat.2010120810.gz1
)