Fri Nov 27 10:00:01 EST 2009 974 12506 Fri Nov 27 11:00:01 EST 2009 988 12655 Fri Nov 27 12:00:01 EST 2009 1005 12886 Fri Nov 27 13:00:01 EST 2009 1026 13115 Fri Nov 27 14:00:01 EST 2009 1042 13429
我试图在\ n然后\ t上爆炸,但看起来文件中没有标签...
答案 0 :(得分:3)
无论大小如何,这都将在所有空白集合中分开。
$lines = file($myfile);
foreach ($lines as $line) {
$line = preg_split('/\s+/', $line);
# do stuff with line
}
答案 1 :(得分:1)
$lines = explode( "\r\n", $str ); foreach( $lines as $line){ echo 'date = ' . substr( $line, 0 , 28) . PHP_EOL; echo 'var1 = ' . substr( $line, 28 , 12) . PHP_EOL; echo 'var2 = ' . substr( $line, 40 , 12) . PHP_EOL; echo '
' ; }
如果可能,PHP首先将所有传入的变量视为整数,所以如果文本文件具有可预测的长度(我可以看到24,12,12个字符),那么0000000974将被正确解析为整数974而不是不得不求助于修剪。
如果可以,最好不要使用正则表达式吗?
答案 2 :(得分:0)
似乎是固定的列宽。您将需要:
爆炸可能会返回一堆空元素,因为它只匹配单个字符/ 一个空间。
答案 3 :(得分:0)
$line = "Fri Nov 27 10:00:01 EST 2009 974 12506";
preg_match_all('~\S+~', $line, $parts);
print_r($parts[0]);
其余由你决定