Новости Joomla

Joomla официально признана цифровым общественным благом Joomla с гордостью сообщает, что была...

Joomla официально признана цифровым общественным благом 🙏🎉Joomla с гордостью сообщает, что была официально признана цифровым общественным благом (Digital Public Good, DPG) Альянсом цифровых общественных благ (Digital Public Goods Alliance, DPGA) — инициативой, поддерживаемой Организацией Объединённых Наций.Это признание ставит Joomla! в ряд международных open-source проектов, которые разделяют ценности открытости, прозрачности, защиты данных и социального воздействия. Важно отметить, что статус цифрового общественного блага присвоен самому программному решению Joomla!, а не организации Joomla как юридическому лицу.Альянс цифровых общественных благ (DPGA) ведёт международный реестр цифровых общественных благ и оценивает проекты на основе чётко определённых стандартов. Его миссия — поддержка открытых технологий, способствующих достижению Целей устойчивого развития ООН (UN SDGs) и решению глобальных задач развития. 🌐Чтобы получить статус цифрового общественного блага, проект должен соответствовать Стандарту цифровых общественных благ (Digital Public Goods Standard), который включает следующие критерии:✔️ Открытое лицензирование (например, использование признанных open-source лицензий)✔️ Защита данных и безопасность✔️ Соответствие правовым и этическим нормам✔️ Вклад в достижение Целей устойчивого развития ООН✔️ Прозрачное управление и долгосрочная устойчивость✔️ Активное вовлечение сообществаПолучение статуса цифрового общественного блага — процесс далеко не автоматический. Joomla прошла тщательную процедуру оценки, которая потребовала предоставления подробной документации и доказательств соответствия строгим стандартам.Благодаря самоотверженной работе множества участников сообщества, этот результат стал наглядным подтверждением универсальности и открытости Joomla, а также бесчисленных способов, с помощью которых она помогает людям создавать веб-решения.Это достижение подчёркивает позицию Joomla как одной из самых надёжных и гибких open-source CMS в мире — системы, которая продолжает давать возможность разработчикам, организациям и государственным структурам создавать открытые, безопасные и инклюзивные цифровые решения.Оригинал новости

0 Пользователей и 1 Гость просматривают эту тему.
  • 63 Ответов
  • 2665 Просмотров
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Друзья, помогите пожалуйста, сервис DropBox поменял свой код. Вот пример моей страницы:
https://www.dropbox.com/sh/aev1ky5bjbk8cef/Eq9fDTTyZp
Раньше ссылки на файлы и размер я вытаскивал таким образом:
Код
preg_match_all("!<a[^>]*\shref=[\"]?([^>\"#\s]+)[\"]?[^>]*>([^<]*<[^>]*>){5,8}<span[^>]*\sclass=\"size\">([A-Z0-9\s\.]*)<\/span>!is",$str,$matches);
Сейчас нужна совсем другая регулярка. Помогите пожалуйста. Некогда с этим разбираться. Ибо в регулярках я не силен, опять придется сначала изучать мануал, вспоминать их.
За 100% небажный рабочий код кину на сотовый 200 руб.
« Последнее редактирование: 04.10.2016, 12:25:33 от ecolora »
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #1 : 04.10.2016, 12:09:32 »
У вас в <head> есть переменная window.MODULE_CONFIG, которая содержит эти ссылки. Если есть возможность отправить ее на сервер, то это будет лучшим вариантом. Если же придется парсить HTML, то есть такой вариант:
Код: php-brief
preg_match('~<script[^>]*>[^<]*window.MODULE_CONFIG\s*=\s*(\{[^;]+\});[^<]*</script>~is',$html,$matches);
$module_config=json_decode($matches[1]);
$files=$module_config->modules->clean->init_react->components[0]->props->contents->files;
$hrefs=array();
foreach($files as $file){
$hrefs[]=$file->href;
}
Думаю, что JS-переменные будут менять реже, чем HTML.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #2 : 04.10.2016, 12:11:45 »
Да они меняют с периодичностью раз в полгода свой код.
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #3 : 04.10.2016, 12:21:54 »
Код не работает:
http://www.ecolora.org/index.php/demo/commedia/menuaudio/playing-from-http/dropbox
И ещё у меня там размер вытаскивался.
« Последнее редактирование: 04.10.2016, 12:24:59 от ecolora »
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #4 : 04.10.2016, 12:40:32 »
Код не работает
Что именно не работает? Проверил у себя:
Спойлер
[свернуть]
Может быть, надо убрать параметр dl?
Спойлер
[свернуть]
Не будь паразитом, сделай что-нибудь самостоятельно!
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #5 : 05.10.2016, 08:50:48 »
Спойлер
[свернуть]
Такой будет работать.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #6 : 05.10.2016, 10:19:15 »
Не работает.
Дружище, раньше я вытаскивал с размером.
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #7 : 05.10.2016, 11:14:30 »
В массиве $files содержатся объекты-файлы со своими свойствами, в т.ч. ссылка и размер.
Код: php-brief
preg_match('~<script[^>]*>[^<]*window.MODULE_CONFIG\s*=\s*(\{[^;]+\});[^<]*</script>~is',$str,$matches);
$module_config=json_decode($matches[1]);
$files=$module_config->modules->clean->init_react->components[0]->props->contents->files;
$cm=count($files);//количество файлов
foreach($files as $file){
$href=$file->href;//ссылка
$size=round($file->bytes/1024/1024,1);//размер
}
Надеюсь, что вопрос исчерпан.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #8 : 05.10.2016, 11:42:29 »
Был такой рабочий код:
Код
if (strpos($url,'dropbox.com')!== false) {
     preg_match_all("!<a[^>]*\shref=[\"]?([^>\"#\s]+)[\"]?[^>]*>([^<]*<[^>]*>){5,8}<span[^>]*\sclass=\"size\">([A-Z0-9\s\.]*)<\/span>!is",$str,$matches);
     }
    $cm = count($matches[1]); //количество найденных ссылок
и дальше с ними работал:
Код
 for ($i=0;$i<$cm;($i=$i+1)) {
что-то делаем с $matches[1][$i]
}
Ваша регулярка не работает.
Может дело в том, что у Вас preg_match, а у меня preg_match_all?
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #9 : 05.10.2016, 12:01:54 »
Моя регулярка работает - я не пожалел время его проверять. Я вам в предыдущем посте подробно объяснял, какие данные можно получить с ее помощью, комментарии даже оставил. Далее вам нужно решить, как его применить, а не пытаться копи-пастом засунуть в старый код. Или вы PHP тоже не знаете?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #10 : 05.10.2016, 12:07:11 »
Знаю я PHP, дружище... совсем некогда разбираться с новым кодом. Хотел просто заменить одну регулярку на другую и всё. :-(
Видите ли в чем дело, у меня там несколько вариантов было. И для всех был универсальный разбор потом. Ладно сейчас попробую как-то приладить...
у Вас отличный код, но собственно ощущение, будто туземец (я) пришел к белому человеку (Вам) и попросил подточить каменный наконечник, чтобы его приладить к древку, а белый человек говорит: зачем тебе каменный, выкинь, на тебе металлический, пофигу что он другой формы, и к древку не подходит, зато он гораздо острее и прочнее.
Вот такая ситуация, теперь пытаюсь приладить новый наконечник к своему древку. :-(
« Последнее редактирование: 05.10.2016, 12:24:53 от ecolora »
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #11 : 05.10.2016, 12:29:43 »
Тогда, честно, я вас не понимаю. Вы бы давно уже все сделали вместо того, чтобы написать кучу постов - ведь это дело 1-2 минут. Я не такой занятой, как вы, но единственая причина, по которой я до сих пор здесь пишу - я какой-то совет давал, а мне говорят, что он не рабочий.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #12 : 12.10.2016, 10:53:06 »
Ну 1-2 минуты, это Вы загнули. Пришлось много строк перелопатить.... а чем отличаетс preg_match от preg_match_all. Почему-то Ваша регулярка не работает если делать all. :-(
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #13 : 27.10.2016, 07:12:30 »
Странно. С этой ссылкой работает:
https://www.dropbox.com/sh/aev1ky5bjbk8cef/Eq9fDTTyZp
А с этой не работает:
https://www.dropbox.com/sh/pfez8n74il2xa9j/AABiGX-r57wVfPCgvEGseR3sa
Визуально вроде одинаковый код... :-(
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #14 : 27.10.2016, 09:56:06 »
код одинаковый. возможно вы просто не успеваете получить страницу во втором случае? у меня например она загружается порядка минуты.

кстати, можно уйти от тяжелой регулярки. можно обрезать HTML по вхождению "window.MODULE_CONFIG = ", и затем первого вхождения точки с запятой

типа так
Код
$files = json_decode(explode(';', explode('window.MODULE_CONFIG = ', $a)[1], 2)[0])->modules->clean->init_react->components[0]->props->contents->files;
« Последнее редактирование: 27.10.2016, 10:11:28 от dmitry_stas »
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #15 : 27.10.2016, 17:21:31 »
А что делать не подскажете? Чтобы "успеть" получить страницу?
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #16 : 27.10.2016, 17:23:35 »
ну как бы... а как получаете? cURL?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #17 : 27.10.2016, 17:30:19 »
Вы думаете дело всё-таки во времени загрузки?
Получаю через     
Код
    $str = file_get_contents($url);
    if ($str === false) {
    echo 'function <b>file_get_contents</b> returning <b>false</b> with \''.$url.'\' !<p>';
    return;
    }
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #18 : 27.10.2016, 17:33:32 »
ну я ж не знаю :) вы ж просто спрашиваете, что сделать чтоб успеть, я и подумал, что так и есть, дело во времени загрузки. file_get_contents отдает вам код страницы? или нет?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #19 : 28.10.2016, 09:28:34 »
Вот ещё пример. С этим урлом тоже работает (хотя там больше информации):
https://www.dropbox.com/sh/xlj1vdz15807jly/rFFe5NGeLF
Парсит нормально... Сейчас буду разбираться. Спасибо за совет!

Что-то не подумал сразу вывести содержимое того, что получает функция.
В $str вся страница есть для этого "сложного" урла, по которому не получается вывести ничего.

Значит проблема с регуляркой. :-(
« Последнее редактирование: 28.10.2016, 09:31:38 от ecolora »
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #20 : 28.10.2016, 09:37:50 »
я давал код без регулярки, можете использовать его

Код
$files = json_decode(explode(';', explode('window.MODULE_CONFIG = ', $str)[1], 2)[0])->modules->clean->init_react->components[0]->props->contents->files;

хотя у меня и регулярка работает
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #21 : 28.10.2016, 09:40:08 »
У Вас с этим урлом работает регулярка?
https://www.dropbox.com/sh/pfez8n74il2xa9j/AABiGX-r57wVfPCgvEGseR3sa
У меня с ним не работает на двух сайтах в моём компоненте. что уже диагноз
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #23 : 28.10.2016, 10:00:50 »
Есть почти готовое решение, проблема чуть поправить регулярку. А Вы предлагает всё заново начинать? Совсем нет времени. Это правда.
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #24 : 28.10.2016, 10:03:48 »
та не очень то DOM поможет... из javascript выдираем, не из дерева

ecolora, я дал код без регулярки. используйте его
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #25 : 28.10.2016, 10:12:00 »
Просто помочь хотел, извините.

Цитировать
$dom = new DOMDocument;
$dom->loadHTML($html);
$scripts = $dom->getElementsByTagName('script');
foreach ($scripts as $script) {
;
}
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #26 : 28.10.2016, 10:16:35 »
и потом? точно также выдирать регуляркой или substr? профит в чем?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #27 : 28.10.2016, 10:25:19 »
и потом? точно также выдирать регуляркой или substr? профит в чем?
В точности и надежности, стало быть.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #28 : 28.10.2016, 10:30:31 »
в точности и надежности чего? цикла foreach? :) он несомненно точен :) только зачем он в данном случае - не понимаю. может быть не пойму задумки в целом.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #29 : 28.10.2016, 10:34:35 »
Ну как? Культурно распарсить DOM, затем пройтись по скриптам, и также их распарсить.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Нужно править редирект компонента FAQ book Pro

Автор cantsave

Ответов: 0
Просмотров: 884
Последний ответ 12.06.2017, 15:53:08
от cantsave
Безопасность, был взлом

Автор Dmitriy M

Ответов: 2
Просмотров: 858
Последний ответ 25.02.2017, 21:55:44
от voland
необходим ряд доработок для VirtueMart 3

Автор winni-pyx

Ответов: 9
Просмотров: 1055
Последний ответ 21.12.2016, 12:01:40
от dmitry_stas
Странное поведение is_dir

Автор ecolora

Ответов: 23
Просмотров: 874
Последний ответ 01.11.2016, 07:48:21
от Филипп Сорокин