Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: [PHP] preg_match vs simplexml_load_string
GAMEINATOR forums > Soft, Hard и периферия > Hard & Soft
Medvedkoo
Всем привет!

На работе возник спор, что лучше использовать, чтобы вытаскивать данные из XML.

XML могут быть больших размеров (сотни мегабайт), но, если использовать simplexml_load_string - парсим всего 1 раз и вся инфа уже необходимая есть, а так, приверженцы preg_match:

1) каждый раз для того чтобы определить какое-либо поле из XML загружают в память
2) пишут регулярки под каждый случай
3) (еще что-нибудь)

Реально, офис разбился, (условно), на 2 лагеря.

да, и могут возникнуть вопросы, почему загружают, если оно построчно работает, весь файл.
Бывают файлы в одну строку, без символов переноса строки.

=)
Neo][
Какие критерии "лучшести", в каком месте кода и при каких условиях используются эти функции?

Это если разговаривать серьёзно и аргументированно. А ежели так, языками почесать, то мне нравится высказывание: Если у вас есть проблема и вы решили использовать регулярные выражения, то у вас уже две проблемы smile.gif

ЗЫ
Это у тебя проблемы со шрифтами/вкусом/возрастом или ты считаешь, что у читающих твои сообщения какие-то проблемы? smile.gif Вопрос конечно же не в обиду, просто реально не понимаю зачем на полэкрана выделять в данном случае текст.
Medvedkoo
Цитата(Neo][ @ 27.06.2018, 15:03) *

Какие критерии "лучшести", в каком месте кода и при каких условиях используются эти функции?

Это если разговаривать серьёзно и аргументированно. А ежели так, языками почесать, то мне нравится высказывание: Если у вас есть проблема и вы решили использовать регулярные выражения, то у вас уже две проблемы smile.gif

ЗЫ
Это у тебя проблемы со шрифтами/вкусом/возрастом или ты считаешь, что у читающих твои сообщения какие-то проблемы? smile.gif Вопрос конечно же не в обиду, просто реально не понимаю зачем на полэкрана выделять в данном случае текст.


Важна читабельность кода, простота использования данных в XML.

По поводу шрифта, просто вопроса как-такового не было вначале
Supple Hope
не в курсе специфики работы simplexml_load_string, но разве ему не нужно тоже парсить весь файл?
разница может быть только если grep ищет все совпадения а simplexml_load_string завершается после первого найденнного результата и дальше не читает файл
однако же ящитаю что лучше использовать simplexml_load_string для чтения хмл, потому что читать это легче - сразу понятно что этот кусок кода делает
RayTwitty
Если можно кэшировать, то надо кэшировать.
abramcumner
Цитата(Hoyt Ridge @ 27.06.2018, 21:03) *
что лучше использовать simplexml_load_string для чтения хмл, потому что читать это легче - сразу понятно что этот кусок кода делает

Ну так-то можно тоже назвать функцию pregxml_load_string. Тоже все понятно.
Medvedkoo
Нет, ребят, суть не в читабельности вызова метода, а в читабельности кода, который обрабатывает данные.

Если мы парсим XML, то у нас есть дерево этого XML, атрибуты и т.п., все наглядно, а в случае с preg_match не очень (как по мне)
Supple Hope
Используй simplexml_load_string.
FOX
С регулярками ад вообще получится, SimpleXML тоже не айс в плане загрузки всего дерева в память.

Смотрите в сторону XMLReader, парсил им файлы по 300-600мб.

https://habr.com/post/330240/
Medvedkoo
Модераторы, алло, вы где?
Medvedkoo
Мда, даже в группу вк писал, всем пофиг
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.