Я использую среду 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;