在服务器上拉取并加载外部php网页

在服务器上拉取并加载外部php网页,php,server,php-7.3,Php,Server,Php 7.3,我正在尝试从服务器中的.php加载或查看放置在托管服务器外部的.php网页。可能吗?服务器具有PHPV7.3.15 使用以下代码: <?php echo file_get_contents('http://XXXXXXXXXXXX'); ?> 有时候最好用卷发 $url = "http://www.xxxxxxx.xxx"; $curl = curl_init($url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); curl

我正在尝试从服务器中的.php加载或查看放置在托管服务器外部的.php网页。可能吗?服务器具有PHPV7.3.15

使用以下代码:

<?php
echo file_get_contents('http://XXXXXXXXXXXX');
?>

有时候最好用卷发

$url = "http://www.xxxxxxx.xxx";
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$output = curl_exec($curl);
curl_close($curl);
$output应该包含HTML

如果您仍然没有HTML,那么远程服务器可能会阻止类似bot的请求。使用cURL,您可以更好地控制如何模拟浏览器,使远程服务器无法区分您的脚本和真实用户

上面的代码是它的基础,从那里你可以添加各种各样的curl_setopt()来发送一个假的浏览器ID,也可以忽略HTTPS

以下是一些您可以使用的:

    curl_setopt($curl, CURLOPT_COOKIESESSION, true);
    curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie);
    curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie);
    curl_setopt($curl, CURLOPT_VERBOSE, true);
    curl_setopt($curl, CURLOPT_AUTOREFERER, true);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($curl, CURLOPT_ENCODING, '');
    curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36');
在上面的$cookie中,它是一个可写的txt文件的路径,因此它可以像真正的浏览器一样保存所需的数据


您还可以在网站上导航时查看浏览器标题(在开发者工具中),并在curl请求中使用相同的值。

您是否尝试过示例代码或其他网站?似乎fopen包装器是可用的,但正如它所说的,网络是无法访问的$主页=文件获取内容(');echo$主页;非常感谢你!不过,现在我得到了这个错误:“致命错误:未捕获错误:调用/srv/disk16/XXXXXXX/www/XXXXXX/index.php中未定义的函数curl_init()”:3堆栈跟踪:#0{main}抛出/srv/disk16/XXXXXX/www/XXXXXX/index.php,第3行“确保在php.ini中启用了curl。找到行扩展名=php_curl.dll并删除;在前面。更多信息请点击此处:
    curl_setopt($curl, CURLOPT_COOKIESESSION, true);
    curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie);
    curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie);
    curl_setopt($curl, CURLOPT_VERBOSE, true);
    curl_setopt($curl, CURLOPT_AUTOREFERER, true);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($curl, CURLOPT_ENCODING, '');
    curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36');