Получение динамического вывода HTML из другой страницы на сервере (возможно, file_get_contents)

Я использую среду MVC CodeIgniter для своей работы, если это имеет значение.

На одной из моих страниц / контроллеров я хочу захватить HTML, выведенный другой страницей на сайте, в виде строки (для использования в качестве электронной почты или информационного бюллетеня). Я пытался:

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

Но $string просто становится false , о чем говорит документация, означает, что он не прошел. Я должен упустить что-то трагическое …

Возможно, вы можете попробовать использовать cURL. Вы можете увидеть пример здесь: http://www.php.net/manual/en/curl.examples-basic.php

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); 

У меня есть немного лучшее решение, которое по крайней мере работает. 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;