cURL 获取页面内容,如 iframe

cURL get page content like iframe

我想使用 cURL 获取页面内容,但是当我获取它时页面 css 样式无法正确加载,我不知道为什么。

error_reporting(E_ALL);
ini_set('display_errors', 1);

$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_URL,"http://some-page.com/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$result=curl_exec ($ch);
curl_close ($ch);
echo $result;

第二件事是,我是否可以像通过 iframe 获取页面一样使用 cURL 完整工作页面?现在所有链接都被重写,所以当我想转到子页面时它不起作用。

CSS(可能还有一些 Javascript)无法加载,因为它们使用的绝对或相对路径对您的域没有意义。

您将需要在 cURL 响应中找到所有这些链接并将它们替换为域中的有效 URL(并且可能重写常规 HTML 链接和其他资产)。

最好的办法可能是将 Apache 配置为充当反向代理,这样它就会为您完成所有这些工作。参见 ProxyPass