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
Форумы портала PHP.SU :: Версия для печати :: Нужна помощь в оптимизации моей функции
Форумы портала PHP.SU » PHP » Программирование на PHP » Нужна помощь в оптимизации моей функции

Страниц (1): [1]
 

1. google_funny - 13 Января, 2016 - 22:24:26 - перейти к сообщению
Добрый вечер, друзья.

Хочу попросить у вас помощи в оптимизации одной моей PHP функции, что парсит и грабит видео с одного из ТУБ сайтов.. Нужно, если это возможно, ускорить обработку полученных данных с веб и снизить нагрузку на ресурсы сервера..
Приму любую критику.. (приветствуется критика)) )

Спасибо!

Вот, собственно функция. Полностью рабочая, работает на ура... но, возможно, можно и оптимизировать..
Спойлер (Отобразить)
2. Viper - 14 Января, 2016 - 00:24:03 - перейти к сообщению
"Работает?! Не трожь!"
Если нужна скорость, то парсить на php дурная затея(а тем более регулярками). Лучше python или на крайняк nodejs.
3. google_funny - 14 Января, 2016 - 02:05:45 - перейти к сообщению
Viper, что значит "Работает?! Не трожь!" ?

Т.е. вы считаете, что эта функция не рабочая?

а что, можно как-то использовать python в php скрипте? как парсить на python в php?

Я пробовал разобрать HTML методами PHP DOM, но так как в этом HTML много незнакомых HTML5 тегов для ДОМ ПХП таких как (<video>,<var> и прочих), у меня вылазит куча ошибок... поэтому решил регулярками..
4. Faraon-san - 14 Января, 2016 - 11:43:03 - перейти к сообщению
А еще наверное лучше использовать для этого специальное API
https://developers[dot]google[dot]com/youtube/v3/
5. DelphinPRO - 14 Января, 2016 - 13:42:41 - перейти к сообщению
google_funny пишет:
использовать python в php скрипте?


А я хочу использовать php в плюсах!!!
Я слышал, плюсы - очень быстрые, но я их не знаю. Зато знаю php.
Помогите, пожалуйста!!!!!!!!!
6. google_funny - 14 Января, 2016 - 19:08:27 - перейти к сообщению
DelphinPRO пишет:
А я хочу использовать php в плюсах!!!
Я слышал, плюсы - очень быстрые, но я их не знаю. Зато знаю php.
Помогите, пожалуйста!!!!!!!!!


Вы здесь ка маленькие дети.. свое эго поднимаете... не наком больше выпендрится... так вы свои обширные знания показываете вот в такой форме..

Были моменты, когда и вы мало что знали.. написали бы лучше что-то путное, или промолчали.. Я просто попросил помощи в оптимизации функции, а вы тут начинаете.
7. DelphinPRO - 14 Января, 2016 - 20:46:01 - перейти к сообщению
Ты обиделся что ли?
А я-то, в принципе, написал то же самое, что и ты про питон в php.
Но в моей фразе ты заметил глупость, а своей - нет.
8. google_funny - 14 Января, 2016 - 21:32:25 - перейти к сообщению
DelphinPRO пишет:
Но в моей фразе ты заметил глупость, а своей - нет.

Да нет, не обиделся.. просто вот не могу я спокойно относится вот к таким выпадам.. издержки..

Я и в своей фразе заметил глупость, когда я прочитал о ПИТОНЕ, о его его возможностях и реализации, на тот момент, когда я написал это - я совсем ничего о ПИТОНЕ не знал! Только потом погуглил и все понял..

Я просто по мере надобности стараюсь инфо получать.. я с ПИТОНОМ никогда не сталкивался, и не слышал даже о нем.. до того момента..

Всего же не узнать)
------------------------------
Так а что насчет функции, то? Что вы думаете? ЕЕ можно как-то оптимизировать, используя методы PHP? как вообще написана функция? я же для критики ее тут и выложил..
9. Viper - 14 Января, 2016 - 22:14:16 - перейти к сообщению
google_funny пишет:
ЕЕ можно как-то оптимизировать, используя методы PHP? как вообще написана функция? я же для критики ее тут и выложил..

Её лучше не трогать если она работает как вам нужно(об этом цитата в втором посте была). Если же вы уткнулись в производительность, то php не самое лучшее решение для парсинга веба.
Но если вы всё же решили оптимизировать, то эту функцию-полотенце как минимум разбить на части необходимо, т.к. получение контента и его парсинг в одной функции большой функции - один большой геморой.
И как минимум часть разбора контента можно переделать на xpath. Не стоит забывать про то, что в некоторых случаях substr/strpos быстрее регулярок, в некоторых нет.

PS! Собственно если не хотите гемороя перечитайте мой второй пост в этой теме ;)
10. DelphinPRO - 14 Января, 2016 - 22:44:53 - перейти к сообщению
google_funny пишет:
как вообще написана функция? я же для критики ее тут и выложил..

функция как функция, что там критиковать. Если работает - не стоит трогать.
Вряд ли там будет просадка в производительности связанная именно с парсингом.
11. google_funny - 14 Января, 2016 - 23:42:48 - перейти к сообщению
ОК, друзья, я вас понял... спасибо за конструктивную критику!
Да, ф-ция полностью рабочая.. все как нужно ищет)

Насчет ПИТОНА... я бы использовал его для парсинга... если бы у меня был нормальный вебсервер с полным доступом к админ-панели сервера (чтобы я тот самый ПИТОН смог установить! Почти нигде по-умолчанию хостеры не ставят ПИТОН на свои сервера..) И хотелось бы чтобы скрипт парсинга можно было использовать почти на любим хосте.. вот еще одна причина, почему он на PHP.

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

Насчет парсинга по xpath.
Я вот это и хочу реализовать.. а то, что не сможет разобрать XPATH - разобрать регулярками.. НО, ПОЧЕМУ , почему, когда я разбираю контент по XPATH - у меня вылазит много ошибок, что типа найден недопустимый тег.. (<video>, <var> и тому подобные.. ), что DOM методлы не поддерживают новые HTML5 стандарты тегов? Если нет, то можно как-то включить поддержку HTML5 тегов для DOM?

И еще.. есть библиотека SIMPLE HTML DOM. Может быть лучше использовать ее для разбора контента? или использовать стандартные PHP методы работы с DOM?
12. Viper - 15 Января, 2016 - 10:54:28 - перейти к сообщению
google_funny пишет:
xpath
ему пофиг на теги, т.к. он работает с xml, а в xml можно определять свои теги. Малюсенький кусочек примера.

 

Powered by ExBB FM 1.0 RC1