代码之家  ›  专栏  ›  技术社区  ›  Mottie

加载带有curl的文件

  •  0
  • Mottie  · 技术社区  · 15 年前

    请原谅我,我正在努力学习PHP以及如何处理服务器端的文件和设置。一切都很好,直到最近我不得不切换我的托管网站。这个新的宿主网站有 url_fopen 关掉了。

    我以前的脚本使用:

    file_get_contents ("that.htm");
    

    但现在我需要用卷发。我已经知道如何在没有任何问题的情况下加载远程文件。然后保存(仍在使用 file_put_contents 因为它不受限制)并按如下方式重新访问此缓存文件:

    $path = $_SERVER["PHP_SELF"];
    $file = replace("this.php","that.htm",$path);
    
    $ch = curl_init();
    
    curl_setopt($ch, CURLOPT_URL, $file);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_HEADER, 0);
    
    $data = curl_exec($ch);
    curl_close($ch);
    

    *注意:“this.php”是包含上述脚本的文件,“that.htm”是同一目录中的缓存文件(它没有像这样包含所有HTML <html> <body> 但是它确实有一个 <table> 如果有什么不同的话)。此外,“that.htm”的文件权限设置为777。

    我的问题是我没有从$data得到任何输出(我可以看到“that.htm”有适当的内容,因为我可以直接在浏览器中加载文件)。

    所以我没有得到设置$file的输出:

    我试图在$data之后添加var_转储,但显然脚本从未达到这一点。

    我相信这是很愚蠢的事情,但是在我搜索网络和这个网站的过程中,我没办法搞清楚(所有的例子都是这样说的) http://example.com “”。

    1 回复  |  直到 15 年前
        1
  •  1
  •   VolkerK    15 年前

    看起来您希望访问与初始脚本文件位于同一目录中的(静态)文件。在这种情况下,不需要HTTP请求。
    当您像这样增加错误报告级别时,脚本将打印什么?

    error_reporting(E_ALL);
    ini_set('display_errors', 1);
    
    file_get_contents ("./that.htm");
    

    是否有任何错误/警告消息?