Не можете отобразить вывод на экран, используя PHP? - PullRequest
2 голосов
/ 07 октября 2009

У меня есть следующий сценарий.

У меня есть веб-сайт на PHP, который содержит около 3 веб-страниц с динамическим контентом. Я хочу сделать это для статического содержимого в другой файл. Например. contact.php -> contact.html

Мой код выглядит так

ob_start();
$content = require_once 'contact.php';
ob_end_flush();
file_put_contents("contact.html", $content);

Как-то это не работает; -? (

Ответы [ 4 ]

9 голосов
/ 07 октября 2009

require_once () не возвращает содержимое, выведенное скриптом. Вам нужно получить вывод скрипта, который хранится в буфере вывода:

ob_start();
require_once('contact.php');
$content = ob_get_clean();

file_put_contents('contact.html', $content);

ob_get_clean ()

Получает текущее содержимое буфера и удалить текущий выходной буфер.

ob_get_clean () по существу выполняется оба ob_get_contents () и ob_end_clean ().

http://php.net/ob_get_clean

2 голосов
/ 07 октября 2009

Оформить заказ ob_get_flush (http://www.php.net/manual/en/function.ob-get-flush.php)

В основном попробуйте сделать

if(!is_file("contact.html")){
  ob_start();
  require_once 'contact.php';
  $content = ob_get_flush();
  file_put_contents("contact.html", $content);
}else{
  echo file_gut_contents("contact.html");
}

Это должно буферизовать вывод из contact.php и вывести его при необходимости.

2 голосов
/ 07 октября 2009

require_once открывает файл и пытается разобрать его как PHP. Он не вернет свой вывод. То, что вы, вероятно, ищете, это:

<?php
ob_start();
require_once('file.php');
$content = ob_get_contents();
ob_end_flush();
// etc...
?>

Таким образом, скрипт сохраняет данные в $ content и выводит их в стандартный вывод. Если вы хотите заполнить только $ контент, используйте ob_end_clean() вместо ob_end_flush().

2 голосов
/ 07 октября 2009
ob_start();
require_once('contact.php');
$content = ob_get_contents();
ob_end_clean();
file_put_contents("contact.html", $content);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...