Достался мне в поддержку стареникий сайт, работающий на старой версии PHP 5.3, всё работало само по себе, и я ничего не трогал. Как говориться работает не ремонтируй. Но вот вдруг перестал работать виджет для инстаграм. Когда-то давно я прикрутил этот виджет и забыл. Но менеджер заказчика ответсвенный за работу социальных сетей поменял пароль в инстаграм и виджет перестал работать. Я скачал новую версию и тут обнаружил что для новой версии inwidget 1.1.0 требуется PHP >= 5.4.0.
Ну думаю - всё пропало, всё плохо, плохо, плохо. Делать нечего пришлось попробовать починить. В новой версии используется плагины - instagram-php-scraper и unirest-php. Вот их код и пришлось править. Хотя править там всего ничего.
Первое на что спотыкает PHP это новый стиль объявления массивов - [], тут все проста меняем на array(). Еще в коде используется функция hex2bin, которой нет в старой версии PHP. Реализацию этой функции нашел на github, скопировал код, только обозвал hex2bin2, хотя это вовсе необязательно. И последнее место это реализация функции private static function getImageUrls($imageUrl) в plugins/instagram-php-scraper/InstagramScraper/Model/Media.php. Там используется код $parts = explode('/', parse_url($imageUrl)['path']); , по мне он куда запутанней чем $parts = explode('/', parse_url($imageUrl, PHP_URL_PATH));
Вот после всех этих изменений виджет inwidget 1.1.0 заработал на старой версии PHP 5.3.
Скачать с Github - inwidget
К сожалению, похоже, уже не работает.
Папка inwidget. Права на кэш. Логин в конфиге указан.
В результате:
Cache file contains plain text:
ERROR #500: Response code is 404. Body: Page Not Found • Instagram (function()
…
Обновлние кэша не помогло.
— sm · 9 января 2018, 06:03 · #
Да, уже все поменялось несколько раз и теперь виджет не работает. Постараюсь исправить.
— Redduck · 9 января 2018, 14:58 · #
need instraction in english and explanationof tj
he key board
— tuvia amit · 27 августа 2018, 23:30 · #