Strict Standards: Resource ID#18 used as offset, casting to integer (18) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#23 used as offset, casting to integer (23) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#25 used as offset, casting to integer (25) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#26 used as offset, casting to integer (26) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Исполнение php-сценария
ТвойWeb ТвойWeb
Качественный Европейский хостинг
Форум для чайников
 Чат на форуме      Помощь      Поиск      Пользователи


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

> Описание: Из другого php-сценария
Aleksej
Отправлено: 30 Декабря, 2005 - 12:10:40
Post Id


Advanced Member


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

Карма 0




Есть некоторый php-скрипт, который берет из БД код php-скрипта и должен его исполнить. Функция eval не подходит, т.к. есть вероятность повредить некоторые глобальные переменные. Я хочу исполнить код из БД так, что бы получить результат его работы (вывод) и при этом ни как не повредному скрипты.
Пусть $source_php содержит код, который нужно исполнить.
Так вот я решил запустить интерпретатор php и передать ему этот код, а затем получить результат.
Вот так:
CODE:
$fl = fopen ($fname, "w");
flock ($fl, LOCK_EX);
fputs ($fl, $source_php);
flock ($fl, LOCK_UN);
fclose ($fl);
$return_var = 0;
$output = array();
$php = ( isset ($_SERVER['ORIG_SCRIPT_FILENAME']) && ! empty ($_SERVER['ORIG_SCRIPT_FILENAME']) )
? $_SERVER['ORIG_SCRIPT_FILENAME']
: $_SERVER['ORIG_SCRIPT_NAME'];
exec ("\"$php\" \"$fname\"", $output, $return_var);
unlink ($fname);

Где $fname - имя временного файла.
После выполнения переменная $output пустая, а $return_var содержит код ошибки, равный 1.
Вопрос: что сделано не верно? При этом, если точно так же запустить интерпретатор php из консоли, то все работает правильно. А тут нет...
Если есть другое решение описанной задачи - будет только лучше (без создания временных файлов).
Заранее благодарен за помощь!

P.S. Переменная $php будет содержать правильный путь к интерпретатору, проблема не в получении его адреса.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0, скрытых: 0)
« PHP/Perl »


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



Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.039]     [ Gzipped ]



Notice: ob_end_flush(): failed to send buffer of ob_gzhandler (1) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/page_tail.php on line 33