Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Нужна помощь в оптимизации моей функции
Покинул форум
Сообщений всего: 27
Дата рег-ции: Дек. 2015
Помог: 0 раз(а)
Добрый вечер, друзья.
Хочу попросить у вас помощи в оптимизации одной моей PHP функции, что парсит и грабит видео с одного из ТУБ сайтов.. Нужно, если это возможно, ускорить обработку полученных данных с веб и снизить нагрузку на ресурсы сервера..
Приму любую критику.. (приветствуется критика)) )
Спасибо!
Вот, собственно функция. Полностью рабочая, работает на ура... но, возможно, можно и оптимизировать..
Покинул форум
Сообщений всего: 27
Дата рег-ции: Дек. 2015
Помог: 0 раз(а)
Viper, что значит "Работает?! Не трожь!" ?
Т.е. вы считаете, что эта функция не рабочая?
а что, можно как-то использовать python в php скрипте? как парсить на python в php?
Я пробовал разобрать HTML методами PHP DOM, но так как в этом HTML много незнакомых HTML5 тегов для ДОМ ПХП таких как (<video>,<var> и прочих), у меня вылазит куча ошибок... поэтому решил регулярками..
Faraon-san
Отправлено: 14 Января, 2016 - 11:43:03
Посетитель
Покинул форум
Сообщений всего: 318
Дата рег-ции: Сент. 2013
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
google_funny пишет:
использовать python в php скрипте?
А я хочу использовать php в плюсах!!!
Я слышал, плюсы - очень быстрые, но я их не знаю. Зато знаю php.
Помогите, пожалуйста!!!!!!!!!
----- Чем больше узнаю, тем больше я не знаю.
google_funny
Отправлено: 14 Января, 2016 - 19:08:27
Новичок
Покинул форум
Сообщений всего: 27
Дата рег-ции: Дек. 2015
Помог: 0 раз(а)
DelphinPRO пишет:
А я хочу использовать php в плюсах!!!
Я слышал, плюсы - очень быстрые, но я их не знаю. Зато знаю php.
Помогите, пожалуйста!!!!!!!!!
Вы здесь ка маленькие дети.. свое эго поднимаете... не наком больше выпендрится... так вы свои обширные знания показываете вот в такой форме..
Были моменты, когда и вы мало что знали.. написали бы лучше что-то путное, или промолчали.. Я просто попросил помощи в оптимизации функции, а вы тут начинаете.
DelphinPRO
Отправлено: 14 Января, 2016 - 20:46:01
Активный участник
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
Ты обиделся что ли?
А я-то, в принципе, написал то же самое, что и ты про питон в php.
Но в моей фразе ты заметил глупость, а своей - нет.
----- Чем больше узнаю, тем больше я не знаю.
google_funny
Отправлено: 14 Января, 2016 - 21:32:25
Новичок
Покинул форум
Сообщений всего: 27
Дата рег-ции: Дек. 2015
Помог: 0 раз(а)
DelphinPRO пишет:
Но в моей фразе ты заметил глупость, а своей - нет.
Да нет, не обиделся.. просто вот не могу я спокойно относится вот к таким выпадам.. издержки..
Я и в своей фразе заметил глупость, когда я прочитал о ПИТОНЕ, о его его возможностях и реализации, на тот момент, когда я написал это - я совсем ничего о ПИТОНЕ не знал! Только потом погуглил и все понял..
Я просто по мере надобности стараюсь инфо получать.. я с ПИТОНОМ никогда не сталкивался, и не слышал даже о нем.. до того момента..
Всего же не узнать)
------------------------------
Так а что насчет функции, то? Что вы думаете? ЕЕ можно как-то оптимизировать, используя методы PHP? как вообще написана функция? я же для критики ее тут и выложил..
Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007 Откуда: Симферополь
Помог: 98 раз(а)
google_funny пишет:
ЕЕ можно как-то оптимизировать, используя методы PHP? как вообще написана функция? я же для критики ее тут и выложил..
Её лучше не трогать если она работает как вам нужно(об этом цитата в втором посте была). Если же вы уткнулись в производительность, то php не самое лучшее решение для парсинга веба.
Но если вы всё же решили оптимизировать, то эту функцию-полотенце как минимум разбить на части необходимо, т.к. получение контента и его парсинг в одной функции большой функции - один большой геморой.
И как минимум часть разбора контента можно переделать на xpath. Не стоит забывать про то, что в некоторых случаях substr/strpos быстрее регулярок, в некоторых нет.
PS! Собственно если не хотите гемороя перечитайте мой второй пост в этой теме ;)
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
google_funny пишет:
как вообще написана функция? я же для критики ее тут и выложил..
функция как функция, что там критиковать. Если работает - не стоит трогать.
Вряд ли там будет просадка в производительности связанная именно с парсингом.
----- Чем больше узнаю, тем больше я не знаю.
google_funny
Отправлено: 14 Января, 2016 - 23:42:48
Новичок
Покинул форум
Сообщений всего: 27
Дата рег-ции: Дек. 2015
Помог: 0 раз(а)
ОК, друзья, я вас понял... спасибо за конструктивную критику!
Да, ф-ция полностью рабочая.. все как нужно ищет)
Насчет ПИТОНА... я бы использовал его для парсинга... если бы у меня был нормальный вебсервер с полным доступом к админ-панели сервера (чтобы я тот самый ПИТОН смог установить! Почти нигде по-умолчанию хостеры не ставят ПИТОН на свои сервера..) И хотелось бы чтобы скрипт парсинга можно было использовать почти на любим хосте.. вот еще одна причина, почему он на PHP.
Насчет простыни в функции... ок.. разобью ее на более компактные части и буду передавать в нее предварительно загруженный контент.
Насчет парсинга по xpath.
Я вот это и хочу реализовать.. а то, что не сможет разобрать XPATH - разобрать регулярками.. НО, ПОЧЕМУ , почему, когда я разбираю контент по XPATH - у меня вылазит много ошибок, что типа найден недопустимый тег.. (<video>, <var> и тому подобные.. ), что DOM методлы не поддерживают новые HTML5 стандарты тегов? Если нет, то можно как-то включить поддержку HTML5 тегов для DOM?
И еще.. есть библиотека SIMPLE HTML DOM. Может быть лучше использовать ее для разбора контента? или использовать стандартные PHP методы работы с DOM?
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.