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和然後\噸,但它看起來像有文件中沒有標籤...幫我分析這個文件用PHP
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和然後\噸,但它看起來像有文件中沒有標籤...幫我分析這個文件用PHP
這會在所有空格分開收藏,不論大小。
$lines = file($myfile);
foreach ($lines as $line) {
$line = preg_split('/\s+/', $line);
# do stuff with line
}
它似乎是固定的列寬。你將需要:
爆炸可能會返回一個空一堆元素,因爲它僅匹配單個字符/ 一個空間。
$line = "Fri Nov 27 10:00:01 EST 2009 974 12506";
preg_match_all('~\S+~', $line, $parts);
print_r($parts[0]);
剩下的就是你
$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而不必求助於修剪。
如果可以的話,是不是最好避開正則表達式?