чтение выполнившегося php скрипта

larmor

Новичок
чтение выполнившегося php скрипта

У меня index.php собирает результат из других файлов, из базы данных и т.д.
мне надо загрузить то что покажет браузер.

$lines=file("index.php")
грузит сам текст программы.

как получить результат в виде обычного html?
Заранее спасибо.
 

DeFacto

Новичок
larmor
1. fopen("http://www.example.com/index.php", "r");
2. ob_start, ob_get_contents и сохранить в файл результат.
 

Cougar

Кошак
DeFacto
Может, так проще?
PHP:
$content = file_get_contents("http://www.example.com/index.php");
-~{}~ 20.09.05 01:02:

larmor
А тебе рекомендую почитать документацию на тему "URL Wrappers" - там всё это расписано.
 

larmor

Новичок
спасибо почитаю обязательно

-~{}~ 21.09.05 03:10:

file_get_contents - не выполняет скрипт а просто его читает ка кя понял.
а мне надо чтобы он выполнился и получить результат.

мне надо как я понял
ob_start();
include 'index.php';
$script_result = ob_get_contents();
ob_end_clean();

но проблема в том что при include 'index.php'; он почемуто результат ВЫБРАСЫВАЕТ НА ЭКРАН.

что с этим делать????
 

phobos

Новичок
тебе пытаются объяснить, что чтобы получить результат скрипта
надо выполнить скрипт и прочитать результат с помощью file или file_get_contents

но судя по вашему последнему посту("ВЫБРАСЫВАЕТ НА ЭКРАН") вам в FAQ
 

whirlwind

TDD infected, paranoid
larmor фича в том, что в index.php не должно быть exit. exit - это вообще зло вселенское.
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
2 larmor похоже апач не настроен

-~{}~ 21.09.05 10:39:

include должен отдавать результат выполнения скрипта.
а не сам скрипт. бочина какая-то
 

Cougar

Кошак
Народ, ну зачем же так извращаться с этими ob_*()? Его не для этого придумали :)

Если скрипт локальный - тогда shell_exec("php -f script.php"). Если удалённый - тогда file_get_contents("http://site/script.php")

...или у вас хобби - множить сущности?
 

HOCOK

Guest
<?
$get = file_get_contents("http://xx/file.php");
$fp=fopen("result.htm","w");
fwrite($fp,$get);
print $get;
?>

result.htm
 

larmor

Новичок
спасибо. я не ожидал что решений будт столько.
сейчас попробую проверить
 

whirlwind

TDD infected, paranoid
Если скрипт локальный - тогда shell_exec("php -f script.php").
Это - вызов командного интерпретатора - очень медленно. Уж лучше system. С system это будет выглядеть так
PHP:
ob_start();
system('php test3.php');
$t = ob_get_contents();
ob_end_clean();
echo "output: <b>$t</b>";
При чем в отличии от использования include или require данный вариант будет работать правильно, даже в случае если в вызываемом скрипте встречается exit. Это так же справедливо для shell_exec


Если удалённый - тогда file_get_contents("http://site/script.php")
Это - отдельный запрос - то же не быстро. Если таких вставок одна - две, еще ничего. Но когда например частые вставки делаются, будет тормозить.
 

kvf77

Red Devil
Cougar

расскажи нам для чего их придумали. твой совет, в первой части, - это одно сплошное извращение - не советуй лучше
 

larmor

Новичок
спасибо заработало

-~{}~ 24.09.05 12:37:

почти заработало :eek:)

Could not open input file: index.php?mesto=1

выдает и shell_exec, и system("php ...");

а вот просто index.php хорошо работает

что делать?
 

SiMM

Новичок
> Could not open input file: index.php?mesto=1
А у тебя в файловой системе есть файл "index.php?mesto=1"?
[m]features.commandline[/m]
 

larmor

Новичок
нет файла конечно нет.
но у меня набор ссылок на index и мне надо его запускать с разными пораметрами и получать результат.
только не в браузер а в переменную.
 

SiMM

Новичок
> нет файла конечно нет.
Ну так а чего ж ты тогда ожидал - нет файла - нет и шашечек.
Всё остальное (как запускать консольный пхп с параметрами и как эти параметры получать) можешь узнать по вешеприведённой ссылке
 

texrdcom

Новичок
А еще лутче рисуй перед написаниям программы схему в uml
или на листочке с ручкой и тогда такие пробелемы будеш обходить стороной :)
 

larmor

Новичок
вобщем я почитал и чтото так и не придумал как удобно можно было бы запускать интерпритатор с передаваемыми параметрами. придется писать кусок кода для сбора информации с аргументов.... видимо.
я для сбора входящих значений использую кусочек кода с phpBB. "common.php"
наверное просто допишу в index.php проверку если возможные переменные не содержались в $HTTP_GET_VARS и в $HTTP_POST_VARS то попробовать прочитать их из файла. а в файл буду их заранее записывать перед вызовом скрипта.
так тоже будет нормально...
 
Сверху