Forum Webscript.Ru

Программирование => PHP => Тема начата: APL от 17 Октября 2008, 16:40:58

Название: Вот такой вот вопросик...
Отправлено: APL от 17 Октября 2008, 16:40:58
Всю жизни писал на перле, а вот тут начал изучать PHP :)
Столкнулся с таким вопросом:

Можно ли переменной присвоить результат обработанного php-файла, т.е. то, что сервер бы выдал по такому запросу?

Т.е. например если я сделаю include, то результат будет прямо на страницу... а мне нужно в переменную :)
Название: Вот такой вот вопросик...
Отправлено: hanslinger от 17 Октября 2008, 16:44:47
$x = include(\'...\');
в том файле, который инклюдишь, сделай return;
если у тебя там есть вывод какой-то, то читай про output buffering, и потом возвращай ob_get_clean();
Название: Вот такой вот вопросик...
Отправлено: hanslinger от 17 Октября 2008, 16:45:16
[OFF]прочитал как «всю жизнь писал на лепре» сначала. ояебу.[/OFF]
Название: Вот такой вот вопросик...
Отправлено: APL от 17 Октября 2008, 16:49:14
Спасибо! Буду сейчас пробовать!
Название: Вот такой вот вопросик...
Отправлено: APL от 17 Октября 2008, 16:58:48
У меня все равно вставляется в страницу результат...

index.php
Цитировать
   $file = include($_SERVER[\'DOCUMENT_ROOT\']."/inc.php");
?>

finish


inc.php
Цитировать
include file

   return;
?>


по запросу index.php выводит:
Цитировать
include file finish


т.е вывод и inc.php а мне его только в переменную нужно... причем не просто прочитать, а получить результат
Название: Вот такой вот вопросик...
Отправлено: hanslinger от 17 Октября 2008, 17:32:37
Говорю, читай про [p]ob_start[/p].
Самой первой строкой начинаешь буферизацию, а в последней пишешь return ob_get_clean();
Название: Вот такой вот вопросик...
Отправлено: APL от 17 Октября 2008, 17:35:09
я вот такой код нашел... работает :)

Цитировать
   $string = get_include_contents(\'inc.php\');
   function get_include_contents($filename) {
      if (is_file($filename)) {
         ob_start();
         include $filename;
         $contents = ob_get_contents();
         ob_end_clean();
         return $contents;
      } else {
         return \'\';
      }
      return \'\';
   }
Название: Вот такой вот вопросик...
Отправлено: hanslinger от 17 Октября 2008, 17:43:06
Ну примерно то же самое.
Вообще давно пора классами писать, а не вот так вот через жопу.
Название: Вот такой вот вопросик...
Отправлено: APL от 17 Октября 2008, 17:45:30
Я изучаю сейчас :)

Для лучшего изучения переделываю свою CMS с перла на ПХП :)

А насчет классов... так у меня и так ВСЕ классами :)
Название: Вот такой вот вопросик...
Отправлено: hanslinger от 17 Октября 2008, 17:57:30
Если б было всё классами, то вместо include было бы $Class->getSomething();
Название: Вот такой вот вопросик...
Отправлено: APL от 17 Октября 2008, 17:58:18
Я ж пример привел для тестирования :) когда заработало все, вот тогда и в класс запихал :)
Название: Вот такой вот вопросик...
Отправлено: hanslinger от 18 Октября 2008, 00:09:20
А что мешало изначально в класс запихать? Правильно — хуевая организация классов :)
Есть бордовая книга под названием «PHP5 для профессионалов» (кажется). Вот ее очень полезно почитать. Становится более-менее понятно, как должно быть на самом деле.
Название: Вот такой вот вопросик...
Отправлено: APL от 18 Октября 2008, 00:30:54
Ну ё-маё! Я PHP изучаю ТРЕТИЙ день!!! Я на перле все пишу сейчас. Просто пытаюсь разобраться с разными вещами... мне для этого классы не нужны. Они потом будут когда реальный проект кодировать буду. :)
Название: Вот такой вот вопросик...
Отправлено: hanslinger от 18 Октября 2008, 00:38:57
Ну, на будущее, значит.
И про phpfaq.ru тоже забывать не надо :). Там только про базу сильно олдскульно все написано, все правильные пацаны юзают PDO.
Название: Вот такой вот вопросик...
Отправлено: APL от 18 Октября 2008, 01:05:48
а PDO это что такое?
Сейчас уже не поищу... спать... днем только... вырубаюсь
Название: Вот такой вот вопросик...
Отправлено: hanslinger от 18 Октября 2008, 09:38:17
[p]PDO[/p]