Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как отобразить содержимое одного файла в другом?
 
 автор: coloboc66   (26.06.2012 в 13:47)   письмо автору
 
 

Нужно в файле main.php отобразить содержимое файла post.php. Сейчас я использую для этого фрейм:
файл post.php:
/* Здесь длинный html и php -код*/

файл main.php:
$text="<iframe src='post.php'></iframe>";
<body><div>
<?php echo $text;?>
</div></body>

Но фрейм использовать мне не хотелось бы. Если написать
$text=file_get_contents('post.php');

то выводится php -код в текстовом виде.
Как лучше поступить, чтобы не использовать фрейм? Функции типа includе() мне не подходят.
Спасибо.

  Ответить  
 
 автор: speedsoft   (26.06.2012 в 13:58)   письмо автору
 
   для: coloboc66   (26.06.2012 в 13:47)
 

Объясните, чем функция Include не подходит? Возможно найдется решение.

<?
$text
=file_get_contents('http://site.ru/post.php'); 


отобразит Вам ваш файл. Но Include для этих целей правильнее. То что он Вам не подходит есть сомнения.

Поэтому напишите причину того, почему он не подходит.

  Ответить  
 
 автор: coloboc66   (26.06.2012 в 16:00)   письмо автору
 
   для: speedsoft   (26.06.2012 в 13:58)
 

Потому что структура файла main.php такова:
$text=/* результат работы 1-го скрипта */
$text=/* результат работы 2-го скрипта */
...
$text=/* результат работы n-го скрипта */
$text=/* результат работы скрипта, выводящего файл post.php */
<div>
echo $text;
</div>

И как мне в таком случае использовать include()?
И вот ещё что обнаружил: теги селектов во фрейме не работают (не выпадают списки), по крайней мере - в лисе...

  Ответить  
 
 автор: speedsoft   (27.06.2012 в 12:54)   письмо автору
 
   для: coloboc66   (26.06.2012 в 16:00)
 


        ob_start();        
        include($file1);
        $out1 = ob_get_contents();
        ob_end_clean();

        ob_start();        
        include($file2);
        $out2 = ob_get_contents();
        ob_end_clean();


вот 2а инклуда оказались в переменных.

  Ответить  
 
 автор: coloboc66   (27.06.2012 в 15:25)   письмо автору
 
   для: speedsoft   (27.06.2012 в 12:54)
 

А вкратце - какова логика работы этого скрипта? Упомянутые функции (ob_...) я совсем не знаю.

  Ответить  
 
 автор: cheops   (27.06.2012 в 20:16)   письмо автору
 
   для: coloboc66   (27.06.2012 в 15:25)
 

Эти функции перехватывают вывод в браузер и сохраняют в буфере, который можно преобразовывать, сжимать, извлекать и лишь потом отправлять клиенту.

  Ответить  
 
 автор: speedsoft   (27.06.2012 в 20:38)   письмо автору
 
   для: coloboc66   (27.06.2012 в 15:25)
 

cheops все описал, я лишь прокомментирую код.


<?
 
//Сообщаем интерпритатору, что все что дальше будет выводиться
//выводить в буфферную память, а не в поток вывода (клиенту)
       
ob_start();        

//собственно выводим, но интерпритатор перехватывает вывод
//и пишет его в буффер
        
include($file1); 

//отдаем содержимое буффера в переменную
        
$out1 ob_get_contents(); 

//очищаем буффер и возвращаем все к нормальному выводу на экран
        
ob_end_clean(); 

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования