2010-12-13 40 views
3

中分隔寻找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

转到以'explode' - 不使用正则表达式时,它是没有必要的。 – casablanca 2010-12-13 19:39:51

回答

6

如果你有一个文件一样,我会做的两个步骤,如果我是你...

第一步

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

第二步

现在你可以使用爆炸()让所有不同的列和输出他们。

简单的例子:

<?php 
$output = ""; 

$file = file("data.txt"); 
foreach ($file as $line) 
{ 
    $cols = explode (":", $line); 
    $output .= "{$cols[0]} {$cols[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 
) 
相关问题