Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: ob_start and require

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
NOCaut
Отправлено: 19 Ноября, 2014 - 12:15:07
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Нояб. 2014  


Помог: 0 раз(а)




Не получается получить даные.
Вот код:
PHP:
скопировать код в буфер обмена
  1.  
  2. ob_start();            
  3.     require(VIEW.html);
  4.     $request = ob_get_contents();      
  5.     ob_end_clean();    
  6.     var_dump($request);
  7.     return $request;
  8.  


view.html
CODE (html):
скопировать код в буфер обмена
  1.  
  2.  
  3. <html>
  4. <title><?php echo $title; ?></title>
  5. <head></head>
  6. <body></body>
  7. </html>
  8.  
 
 Top
esterio
Отправлено: 19 Ноября, 2014 - 12:21:32
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




NOCaut пишет:
require("VIEW.html");

NOCaut пишет:
return $request;

это функция?
 
 Top
OrmaJever Модератор
Отправлено: 19 Ноября, 2014 - 12:34:44
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




NOCaut пишет:
    require(VIEW.html);

для нормальных людей кавычки придумали


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
NOCaut
Отправлено: 19 Ноября, 2014 - 12:39:51
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Нояб. 2014  


Помог: 0 раз(а)




Спасибо. ето скорее невнимательность при переносе кода на форум из робочой модели
Но на суть не влияет.
И да ето функция.
(Добавление)
так работает:
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <html>
  3. <title><?php echo $title; ?></title>
  4. <head>
  5.  
  6. </head>
  7.  
  8. <body>
  9.  
  10. <?php
  11.         echo $title;
  12. ?>
  13.  
  14. </body>
  15. </html>
  16.  

(Отредактировано автором: 19 Ноября, 2014 - 12:47:30)

 
 Top
esterio
Отправлено: 19 Ноября, 2014 - 13:07:15
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




если функция, то откуда там возьмется переменная $title?
как пример
PHP:
скопировать код в буфер обмена
  1.  
  2. $title = 'Some Title';
  3.  
  4. function Foo()
  5. {
  6.    var_dump($title); // null
  7. }
  8.  
  9. Foo();


вам нужно передать переменную в функцию
(Добавление)
также стоит напомнить что у unix-подобных ОС регистр файла имеет значения. File.txt и file.txt разные файлы.
 
 Top
NOCaut
Отправлено: 19 Ноября, 2014 - 15:08:33
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Нояб. 2014  


Помог: 0 раз(а)




нет. там все верно. title заполняетс в другом php файле.
проблема. в том что буфер пуст.
 
 Top
Sail
Отправлено: 19 Ноября, 2014 - 15:36:26
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


Помог: 57 раз(а)





Ага, функция... Браво Обычный подключаемый файл.
Странность, NOCaut в том, что Вы html-код включаете внутри тегов <?php ?>, просто как часть скрипта...
И к чему игры с буфером?
 
 Top
esterio
Отправлено: 19 Ноября, 2014 - 15:57:52
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




Sail
так делают многие шаблонизаторы (тот же Yii например). только ТС не знает про область видимости переменных.

PHP:
скопировать код в буфер обмена
  1. function template($template, array $data = array())
  2.     {
  3.             if(!is_file($template))
  4.                     throw new Exception('Template '.$template.' not found');
  5.                    
  6.             extract($data);
  7.            
  8.             ob_start();
  9.             include($template);
  10.             return ob_get_clean();
  11.     }


уже примерно раз десять на этом форуме писал даную функцию
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Хранение данных, их вывод и обработка »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB