Перейти в начало страницы

Здравствуйте, гость ( Авторизация | Регистрация )

Gameru.net останавливает работу в связи с вторжением армии РФ в Украину. Следите за дальнейшими анонсами.
Support Gameru!
 
Ответить в данную темуНачать новую тему
> [PHP] preg_match vs simplexml_load_string
Ваш выбор?
Ваш выбор?
preg_match [ 0 ] ** [0,00%]
simplexml_load_string [ 4 ] ** [100,00%]
Всего голосов: 4
Гости не могут голосовать 
Medvedkoo
сообщение 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


--------------------
Перейти в начало страницы
 
Neo][
сообщение 27.06.2018, 14:03
Сообщение #2


The One
****************

Репутация:   744  
Группа: Участник
Сообщений: 2715
Награды: 5
Регистрация: 05.12.2005




Вставить ник Цитировать выделенное в форуму быстрого ответа


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

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

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


--------------------
Перейти в начало страницы
 
Medvedkoo
сообщение 27.06.2018, 15:28
Сообщение #3


Продвинутый геймер
********

Репутация:   112  
Группа: Забанен
Сообщений: 499
Награды: 3
Регистрация: 26.12.2009




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(Neo][ @ 27.06.2018, 15:03) *

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

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

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


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

По поводу шрифта, просто вопроса как-такового не было вначале


--------------------
Перейти в начало страницы
 
Supple Hope
сообщение 27.06.2018, 21:03
Сообщение #4


Босс
********************

Репутация:   257  
Группа: Участник
Сообщений: 4151
Награды: 4
Регистрация: 15.08.2008




Вставить ник Цитировать выделенное в форуму быстрого ответа


не в курсе специфики работы simplexml_load_string, но разве ему не нужно тоже парсить весь файл?
разница может быть только если grep ищет все совпадения а simplexml_load_string завершается после первого найденнного результата и дальше не читает файл
однако же ящитаю что лучше использовать simplexml_load_string для чтения хмл, потому что читать это легче - сразу понятно что этот кусок кода делает
Перейти в начало страницы
 
RayTwitty
сообщение 27.06.2018, 22:18
Сообщение #5


Игровой Бог
**********************

Репутация:   648  
Группа: Участник
Сообщений: 5354
Награды: 9
Регистрация: 24.09.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Если можно кэшировать, то надо кэшировать.


--------------------
Перейти в начало страницы
 
abramcumner
сообщение 27.06.2018, 22:35
Сообщение #6


Игровое Воплощение
*********************

Репутация:   394  
Группа: Участник
Сообщений: 4791
Награды: 4
Регистрация: 27.04.2011




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(Hoyt Ridge @ 27.06.2018, 21:03) *
что лучше использовать simplexml_load_string для чтения хмл, потому что читать это легче - сразу понятно что этот кусок кода делает

Ну так-то можно тоже назвать функцию pregxml_load_string. Тоже все понятно.
Перейти в начало страницы
 
Medvedkoo
сообщение 28.06.2018, 10:26
Сообщение #7


Продвинутый геймер
********

Репутация:   112  
Группа: Забанен
Сообщений: 499
Награды: 3
Регистрация: 26.12.2009




Вставить ник Цитировать выделенное в форуму быстрого ответа


Нет, ребят, суть не в читабельности вызова метода, а в читабельности кода, который обрабатывает данные.

Если мы парсим XML, то у нас есть дерево этого XML, атрибуты и т.п., все наглядно, а в случае с preg_match не очень (как по мне)


--------------------
Перейти в начало страницы
 
Supple Hope
сообщение 28.06.2018, 10:33
Сообщение #8


Босс
********************

Репутация:   257  
Группа: Участник
Сообщений: 4151
Награды: 4
Регистрация: 15.08.2008




Вставить ник Цитировать выделенное в форуму быстрого ответа


Используй simplexml_load_string.
Перейти в начало страницы
 
FOX
сообщение 28.06.2018, 14:51
Сообщение #9


Заслуженный Мастер Игры
*************

Репутация:   270  
Группа: Участник
Сообщений: 1687
Награды: 3
Регистрация: 20.09.2009




Вставить ник Цитировать выделенное в форуму быстрого ответа


С регулярками ад вообще получится, SimpleXML тоже не айс в плане загрузки всего дерева в память.

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

https://habr.com/post/330240/


--------------------

Мутировал, мутировал и накодировал.
- Что в черном ящике?
- Мишины заказчики!
Перейти в начало страницы
 
Medvedkoo
сообщение 28.06.2018, 17:56
Сообщение #10


Продвинутый геймер
********

Репутация:   112  
Группа: Забанен
Сообщений: 499
Награды: 3
Регистрация: 26.12.2009




Вставить ник Цитировать выделенное в форуму быстрого ответа


Модераторы, алло, вы где?


--------------------
Перейти в начало страницы
 
Medvedkoo
сообщение 28.06.2018, 23:43
Сообщение #11


Продвинутый геймер
********

Репутация:   112  
Группа: Забанен
Сообщений: 499
Награды: 3
Регистрация: 26.12.2009




Вставить ник Цитировать выделенное в форуму быстрого ответа


Мда, даже в группу вк писал, всем пофиг


--------------------
Перейти в начало страницы
 

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 27.04.2024, 07:08