Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从服务器上的另一个页面获取动态HTML输出(可能是文件\u获取\u内容)_Php_Codeigniter - Fatal编程技术网

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

Php 从服务器上的另一个页面获取动态HTML输出(可能是文件\u获取\u内容),php,codeigniter,Php,Codeigniter,我正在使用MVC框架CodeIgniter进行我的工作,如果相关的话 在我的一个页面/控制器中,我希望捕获站点上另一个页面输出的HTML作为字符串(用作电子邮件或时事通讯)。我试过: $string = file_get_contents('http://www.examplesite.com/path/to/page'); 但是$string只是变成了false,文档中说这意味着它失败了。我一定错过了什么悲剧…也许你可以尝试使用cURL。您可以在这里看到一个示例:也许您可以尝试使用cURL。

我正在使用MVC框架CodeIgniter进行我的工作,如果相关的话

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

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

但是
$string
只是变成了
false
,文档中说这意味着它失败了。我一定错过了什么悲剧…

也许你可以尝试使用cURL。您可以在这里看到一个示例:

也许您可以尝试使用cURL。您可以在这里看到一个示例:

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

可能已在服务器上禁用。试用


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

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

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

我有一个稍微好一点的解决方案,至少可以工作。CodeIgniter允许调用视图的第三个参数,因此我可以这样做:

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

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

您似乎已经回答了自己的问题。您可能会考虑执行以下操作,让您加载任意页面:

/* 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;

你似乎已经回答了你自己的问题。您可能会考虑执行以下操作,让您加载任意页面:

/* 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;

奇怪的是,这将返回“Apache2测试页面”。有什么想法吗?奇怪的是,这会返回“Apache2测试页面”。有什么想法吗?除非你看到了我没有看到的东西,否则加载视图是不够好的-视图从控制器获得传递的数据,每个控制器的函数调用都不同。当你传递'true'作为第三个变量时,视图将作为字符串发送,而不是呈现。至少CI文档是这么说的。我相信@Steven的抱怨是他想从控制器向视图传递动态数据。在没有更多细节的情况下,在SO中可以轻松解决的工作要多得多。除非您看到我没有看到的东西,否则加载视图是不够好的-视图从控制器获得传递的数据,每个控制器的函数调用都不同。当您传递'true'作为第三个变量时,视图将作为字符串发送,而不是呈现。至少CI文档是这么说的。我相信@Steven的抱怨是他想从控制器向视图传递动态数据。如果没有更多的细节,这项工作要比简单地解决问题多得多。