Как заменить локальные URL страницы "file_get_contents"; - PullRequest
1 голос
/ 08 июля 2019

Из-за ограничений при использовании iframe s для загрузки страниц телеграммы я использую следующий код:

file_get_contents('https://t.me/s/telegram');

Но телеграмма загружает некоторые файлы JavaScript и выполняет POST-запросы на локальныефайлы, которые не существуют на моем сервере.Например, консоль Google показывает следующее как не найденное:

jquery.min.js:4 **POST https://example.com/v/ 404
jquery.min.js:4 POST https://example.com/s/telegram?before=93 404

Вы можете увидеть его на этом рисунке .

Я хочу перехватить эти запросы ипреобразуйте их в глобальные URL-адреса, как показано ниже:

POST https://telegram.org/v/
POST https://telegram.org/s/telegram?before=some_integer

Вот примерный URL-адрес , который следует заменить на URL-адрес телеграммы.

Вместо моего домена скриптследует использовать домен телеграммы.Буду признателен за любую помощь / подсказки.

1 Ответ

0 голосов
/ 08 июля 2019

Я бы попытался загрузить страницу, используя file_get_contents. Затем просмотрите все файлы, пытаясь получить их, вызывая их и сохраняя их локально, затем отобразив исходный URL, теперь, когда все ссылки сохранены, что-то вроде кода ниже

Мой код может быть не идеальным, но я думаю, что это направление, в котором вы должны идти. Посмотрите на источник телеграммного канала, посмотрите, как именно найти JQuery POST-URL, и измените его соответственно

$channel = file_get_contents('https://t.me/s/telegram');
$urls = array();
$jumper = 0;
$jumper2 = 0;
$tempstr = '';
$dir = '/s/' ;

$findstr = "$.ajax: ". "\n". "url:";
while ($jumper <= strlen($channel) || 
strpos($channel, $findstr,$jumper + 1)) {
 $jumper = strpos($channel, $findstr,$jumper);
 $jumper2 = strpos($channel, ',' ,$jumper + 1);
 $urls[] = substr($channel, $jumper + 9, $jumper2 - $jumper + 10);
}

foreach ($urls as $url) {
 file_put_contents($dir . $url);
}

echo $channel;
...