由于使用iframe
加载电报页时受到限制,我使用以下代码:
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
Here is an example URL,应替换为电报的URL。
该脚本应该使用电报的域而不是我的域。不胜感激。
答案 0 :(得分:0)
我会尝试使用file_get_contents加载页面 然后查找所有试图获取的文件 调用它们并将其保存在本地,然后回显原始网址,现在所有引用都已保存,类似于下面的代码
我的代码可能并不完美,但是我认为这是您应该遵循的方向。查看电报频道的源代码,确切地了解如何找到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;