Получение динамического вывода HTML с другой страницы на сервере (возможно, file_get_contents) - PullRequest
2 голосов
/ 02 декабря 2009

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

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

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

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

Ответы [ 4 ]

0 голосов
/ 02 декабря 2009

Вы, кажется, ответили на свой вопрос. Вы можете сделать следующее, чтобы загрузить произвольную страницу:

/* 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;
0 голосов
/ 02 декабря 2009

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);
0 голосов
/ 02 декабря 2009

У меня есть немного лучшее решение, которое по крайней мере работает. CodeIgniter позволяет третий аргумент для вызова представления, чтобы я мог сделать это:

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

Это по-прежнему не решает мою первоначальную проблему дублирования вызовов в контроллере, но, по крайней мере, это лучше. Обратите внимание, что для этого все же требуется, чтобы я точно знал, какой контроллер используется.

0 голосов
/ 02 декабря 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...