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

从服务器上的另一个页面获取动态HTML输出(可能是文件获取内容)

  •  2
  • Steven  · 技术社区  · 15 年前

    如果相关的话,我将在我的工作中使用MVC框架代码点火器。

    在我的一个页面/控制器中,我想将站点上另一个页面输出的HTML捕获为字符串(用作电子邮件或时事通讯)。我尝试过:

    $string = file_get_contents('http://www.examplesite.com/path/to/page');
    

    但是 $string 就变成 false 文件上说这意味着它失败了。我一定错过了一件悲剧…

    4 回复  |  直到 15 年前
        1
  •  0
  •   dusan    15 年前

    也许你可以试试卷发。您可以在这里看到一个示例: http://www.php.net/manual/en/curl.examples-basic.php

        2
  •  0
  •   Galen    15 年前

    fopen_wrappers 可能在您的服务器上被禁用。试用使用 Curl

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
    curl_setopt($ch, CURLOPT_URL,'http://www.examplesite.com/path/to/page');
    $html = curl_exec($ch);
    
        3
  •  0
  •   Steven    15 年前

    我有一个更好的解决方案,至少是可行的。CodeIgniter允许调用视图的第三个参数,以便我可以这样做:

    $string = $this->load->view('path/to/view', '', true);
    

    这仍然不能解决我最初关心的在控制器中复制调用的问题,但至少更好。请注意,这仍然需要我确切知道正在使用哪个控制器。

        4
  •  0
  •   Corey Ballou    15 年前

    你好像回答了自己的问题。您可以考虑执行以下操作,以便加载任意页面:

    /* index method inside example controller */
    function index($url) {
        $content = $this->load->view(urldecode($url), '', true);
    }
    
    // requesting this page generates string output for a specified url
    $url = urlencode('/relative/path/to/view/');
    http://www.example.com/index.php/example/index/ . $url;