Пятница 27 Ноябрь 10:00:01 EST 2009 974 12506 Пятница 27 Ноябрь 11:00:01 EST 2009 988 12655 Пятница 27 ноября 12:00:01 EST 2009 1005 12886 Пятница 27 Ноябрь 13:00:01 EST 2009 1026 13115 Пятница 27 ноября 14:00:01 EST 2009 1042 13429
Я попытался взорваться на \ n, а затем \ t, но похоже, что в файле нет вкладок …
Это будет разделено на любые коллекции пробелов, независимо от размера.
$lines = file($myfile); foreach ($lines as $line) { $line = preg_split('/\s+/', $line); # do stuff with line }
$ 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; эхо "
'; }
Если возможно, PHP обрабатывает все входящие vars как целое в первую очередь, поэтому, если текстовые файлы имеют прогнозируемую длину (24, 12, 12 символов, которые я вижу), то 0000000974 будет правильно проанализирован как целое число 974, не прибегая к использованию Обрезать.
Разве это не всегда лучше для регулярных выражений aviod, если можно?
По-видимому, это фиксированная ширина столбца. Вам также понадобится:
Explode, скорее всего, вернет кучу пустых элементов, поскольку он соответствует только одному символу / одному пробелу.
$line = "Fri Nov 27 10:00:01 EST 2009 974 12506"; preg_match_all('~\S+~', $line, $parts); print_r($parts[0]);
Остальное зависит от тебя