[PHP] preg_match vs simplexml_load_string |
Здравствуйте, гость ( Авторизация | Регистрация )
[PHP] preg_match vs simplexml_load_string |
27.06.2018, 13:08
Сообщение
#1
|
|
Продвинутый геймер Репутация: 112 Группа: Забанен Сообщений: 499 Награды: 3 Регистрация: 26.12.2009 |
Всем привет!
На работе возник спор, что лучше использовать, чтобы вытаскивать данные из XML. XML могут быть больших размеров (сотни мегабайт), но, если использовать simplexml_load_string - парсим всего 1 раз и вся инфа уже необходимая есть, а так, приверженцы preg_match: 1) каждый раз для того чтобы определить какое-либо поле из XML загружают в память 2) пишут регулярки под каждый случай 3) (еще что-нибудь) Реально, офис разбился, (условно), на 2 лагеря. да, и могут возникнуть вопросы, почему загружают, если оно построчно работает, весь файл. Бывают файлы в одну строку, без символов переноса строки. =) Сообщение отредактировал OlegatoR - 27.06.2018, 20:32 -------------------- |
 
|
|
|
|
27.06.2018, 14:03
Сообщение
#2
|
|
The One Репутация: 744 Группа: Участник Сообщений: 2715 Награды: 5 Регистрация: 05.12.2005 |
Какие критерии "лучшести", в каком месте кода и при каких условиях используются эти функции?
Это если разговаривать серьёзно и аргументированно. А ежели так, языками почесать, то мне нравится высказывание: Если у вас есть проблема и вы решили использовать регулярные выражения, то у вас уже две проблемы ЗЫ Это у тебя проблемы со шрифтами/вкусом/возрастом или ты считаешь, что у читающих твои сообщения какие-то проблемы? Вопрос конечно же не в обиду, просто реально не понимаю зачем на полэкрана выделять в данном случае текст. -------------------- |
 
|
|
27.06.2018, 15:28
Сообщение
#3
|
|
Продвинутый геймер Репутация: 112 Группа: Забанен Сообщений: 499 Награды: 3 Регистрация: 26.12.2009 |
Какие критерии "лучшести", в каком месте кода и при каких условиях используются эти функции? Это если разговаривать серьёзно и аргументированно. А ежели так, языками почесать, то мне нравится высказывание: Если у вас есть проблема и вы решили использовать регулярные выражения, то у вас уже две проблемы ЗЫ Это у тебя проблемы со шрифтами/вкусом/возрастом или ты считаешь, что у читающих твои сообщения какие-то проблемы? Вопрос конечно же не в обиду, просто реально не понимаю зачем на полэкрана выделять в данном случае текст. Важна читабельность кода, простота использования данных в XML. По поводу шрифта, просто вопроса как-такового не было вначале -------------------- |
 
|
|
27.06.2018, 21:03
Сообщение
#4
|
|
Босс Репутация: 257 Группа: Участник Сообщений: 4151 Награды: 4 Регистрация: 15.08.2008 |
не в курсе специфики работы simplexml_load_string, но разве ему не нужно тоже парсить весь файл?
разница может быть только если grep ищет все совпадения а simplexml_load_string завершается после первого найденнного результата и дальше не читает файл однако же ящитаю что лучше использовать simplexml_load_string для чтения хмл, потому что читать это легче - сразу понятно что этот кусок кода делает |
 
|
|
27.06.2018, 22:18
Сообщение
#5
|
|
Игровой Бог Репутация: 648 Группа: Участник Сообщений: 5354 Награды: 9 Регистрация: 24.09.2010 |
Если можно кэшировать, то надо кэшировать.
-------------------- |
 
|
|
27.06.2018, 22:35
Сообщение
#6
|
|
Игровое Воплощение Репутация: 394 Группа: Участник Сообщений: 4791 Награды: 4 Регистрация: 27.04.2011 |
|
 
|
|
28.06.2018, 10:26
Сообщение
#7
|
|
Продвинутый геймер Репутация: 112 Группа: Забанен Сообщений: 499 Награды: 3 Регистрация: 26.12.2009 |
Нет, ребят, суть не в читабельности вызова метода, а в читабельности кода, который обрабатывает данные.
Если мы парсим XML, то у нас есть дерево этого XML, атрибуты и т.п., все наглядно, а в случае с preg_match не очень (как по мне) -------------------- |
 
|
|
28.06.2018, 10:33
Сообщение
#8
|
|
Босс Репутация: 257 Группа: Участник Сообщений: 4151 Награды: 4 Регистрация: 15.08.2008 |
Используй simplexml_load_string.
|
 
|
|
28.06.2018, 14:51
Сообщение
#9
|
|
Заслуженный Мастер Игры Репутация: 270 Группа: Участник Сообщений: 1687 Награды: 3 Регистрация: 20.09.2009 |
С регулярками ад вообще получится, SimpleXML тоже не айс в плане загрузки всего дерева в память.
Смотрите в сторону XMLReader, парсил им файлы по 300-600мб. -------------------- |
 
|
|
28.06.2018, 17:56
Сообщение
#10
|
|
Продвинутый геймер Репутация: 112 Группа: Забанен Сообщений: 499 Награды: 3 Регистрация: 26.12.2009 |
Модераторы, алло, вы где?
-------------------- |
 
|
|
28.06.2018, 23:43
Сообщение
#11
|
|
Продвинутый геймер Репутация: 112 Группа: Забанен Сообщений: 499 Награды: 3 Регистрация: 26.12.2009 |
Мда, даже в группу вк писал, всем пофиг
-------------------- |
 
|
|
Текстовая версия | Сейчас: 06.05.2024, 06:29 |