![]() |
|
Модераторы: Aliance, skyboy, MoLeX, ksnk |
![]()
|
|
| Gold Dragon |
|
||||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 1 Всего: 71 |
Помогите log-файл загнать в массив. Вот пример
Данные разделяются пробелами. Количество пробелов между данными не постоянно. формат массива такой:
И уж заодно, как лучше загружать log-файл, т.к. размер его может быть довольно большим -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
||||
|
|||||
| SamDark |
|
|||
|
Добрый кот ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1424 Регистрация: 25.7.2006 Где: Voronezh Репутация: 4 Всего: 38 |
Gold Dragon,
т.к. число пробелов не постояноо: используй preg_split(' +', $log_line). Вывод лучше организовать постраничный. При этом не читать весь файл. Пользоваться fseek(). -------------------- rmcreative.ru — Это жжж неспроста... yiiframework.ru — О фреймворке Yii на русском. reggi — здесь я регистрирую домены |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 16 Всего: 261 |
Проще сначала грохнуть все двойные пробелы, затем explode.
|
|||
|
||||
| SamDark |
|
|||
|
Добрый кот ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1424 Регистрация: 25.7.2006 Где: Voronezh Репутация: 4 Всего: 38 |
Mal Hack,
Двойные пробелы всё-равно грохать регуляркой (может их и не два). Зачем делать лишние действия? -------------------- rmcreative.ru — Это жжж неспроста... yiiframework.ru — О фреймворке Yii на русском. reggi — здесь я регистрирую домены |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 16 Всего: 261 |
А потому, что регурялка скорее всего в данном случае больше скушает.
|
|||
|
||||
| SamDark |
|
|||
|
Добрый кот ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1424 Регистрация: 25.7.2006 Где: Voronezh Репутация: 4 Всего: 38 |
Mal Hack,
Надо проверить. -------------------- rmcreative.ru — Это жжж неспроста... yiiframework.ru — О фреймворке Yii на русском. reggi — здесь я регистрирую домены |
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 1 Всего: 71 |
Так. а как мне грухнуть двоуные, тройные и тому подобные пробулы?
-------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| mishaSL |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1046 Регистрация: 10.1.2007 Где: Санкт-Петербург Репутация: 9 Всего: 54 |
Проще как говорил
SamDark, к примеру preg_split("/[\s]+/", $line); потом протестируй на больших файлах. -------------------- Лучший способ научиться программированию - это посмотреть как это делают другие... |
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 1 Всего: 71 |
-------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| SamDark |
|
|||
|
Добрый кот ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1424 Регистрация: 25.7.2006 Где: Voronezh Репутация: 4 Всего: 38 |
Gold Dragon,
Всё правильно. Читать придётся побайтно порциями. -------------------- rmcreative.ru — Это жжж неспроста... yiiframework.ru — О фреймворке Yii на русском. reggi — здесь я регистрирую домены |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 16 Всего: 261 |
На счет начального "гроханья" двойных пробелов я поспешил... Виноват...
На выходе получаем единый вектор. Работать проще, чем с матрицей. Надо просто смещение указывать. А смысл использовать fseek? - Никакого. Файл в любом случае будет полностью записан в ОП. Так что на больших файлам вообще потоке придется использовать. |
|||
|
||||
| SamDark |
|
|||
|
Добрый кот ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1424 Регистрация: 25.7.2006 Где: Voronezh Репутация: 4 Всего: 38 |
Mal Hack,
Может сразу preg_split("#\s+#", $str)?
-------------------- rmcreative.ru — Это жжж неспроста... yiiframework.ru — О фреймворке Yii на русском. reggi — здесь я регистрирую домены |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 16 Всего: 261 |
||||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 1 Всего: 71 |
да но в каждой строе разное количество байт Добавлено @ 16:51
По моему с матрицей лучше SamDark, что-то не хочет запускаться... ps а такой глупый вопрос: пробел и табуляция - это ведь разные вещи? -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| SamDark |
|
||||||||||
|
Добрый кот ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1424 Регистрация: 25.7.2006 Где: Voronezh Репутация: 4 Всего: 38 |
Mal Hack,
Ну, это же вариант с вектором... так что не надо.
Люблю, когда наглядно Gold Dragon,
Открываешь файл. Смещаешь курсор на некоторое значение. Читаешь не менее N символов до следующего перевода строки.
Разные, поэтому в регулярном выражении используется класс \s, который включает и пробелы и табуляции и, если не ошибаюсь, переводы строк. Вот рабочий код для вектора:
-------------------- rmcreative.ru — Это жжж неспроста... yiiframework.ru — О фреймворке Yii на русском. reggi — здесь я регистрирую домены |
||||||||||
|
|||||||||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Тексты | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |