exec возвращает HTML код.

bmn

Новичок
exec возвращает HTML код.

Здравствуйте!
В файле script.php я запускаю скрипт test.php в отдельном процессе, но в результате возвращается HTML код файла script.php

script.php
PHP:
echo "html code here...";
exec ("/usr/local/bin/php -f test.php > _log.txt ", $ret, $err);
test.php
PHP:
echo date ("H:i:s");
в результате этой работы в файл _log.txt пишется не ожидаемое текущее время, а HTML-код script.php.

_log.txt:
PHP:
Content-type: text/html
X-Powered-By: PHP/4.3.10

html code here...

если же запуск происходит из консоля (например через PuTTY) то всё прекрасно работает -- в файл лога записывается дата.
Что это за ерунда? Помогите пожалуйста.
 

bmn

Новичок
в том то и дело, что никаких ошибок не выдаётся.

для эксперемента попробовал вызвать этот скрипт из консоли

php -f script.php
потом просмотрел _log.txt и там всё тот же
PHP:
Content-type: text/html
X-Powered-By: PHP/4.3.10
-~{}~ 26.06.06 23:53:

и никто ничего не скажет?
 

bmn

Новичок
WP извини, но я не нашёл ошибки в коде + Логи пустые соответсвенно всё ок. может *ткнёшь носом*, пожалуйста?
 

ThomLee

Новичок
Автор оригинала: bmn
WP извини, но я не нашёл ошибки в коде + Логи пустые соответсвенно всё ок. может *ткнёшь носом*, пожалуйста?
Тыкаю:
1)test1.php > _log.txt
ошибка в конструкции. Знаком > ты перенаправляешь вывод в файл, весь вывод, включая заголовки.
2)Если подразумевается п.1, то все правильно, должно записываться то, что записывается у тебя.
3)Для записи в файл используй функции, которые для этого предназначены (в данном случае ты микроскопом гвозди заколачиваешь), для твоей задачи достаточно: exec("date > _log.txt",$a,$b); или не пользуясь экзеком - смотри fopen()
 

bmn

Новичок
Вывод даты -- это только для примера,а задача такая:
Запустить скрипт в отдельном процессе.
а _log.txt -- это файл лога. в который будут записываться все данные, которые выводит test.php
но почему - то туда записываются всё что выводит script.php
---
проблема не решена!
 

bmn

Новичок
_vampiro_, всё то же. он выводит всё содержимое файла script.php , а должен (по-идеи) test.php
 

_vampiro_

Новичок
Чудеса... а можна вопрос, откуда там "1"?
PHP:
exec ("/usr/local/bin/php -f test/*--->*/1/*<---*/.php > _log.txt ", $ret, $err);
 

bmn

Новичок
Отмечу, что PHP подключен как CGI, а не как модуль Apache.
может в этом может быть что-то?

-~{}~ 27.06.06 11:48:

_vampiro_, не пугайся, всё ок. для эксперемента попробовал другое имя файла. он точно такой же как и test.php
 

ThomLee

Новичок
Автор оригинала: bmn
Отмечу, что PHP подключен как CGI, а не как модуль Apache.
может в этом может быть что-то?

-~{}~ 27.06.06 11:48:

_vampiro_, не пугайся, всё ок. для эксперемента попробовал другое имя файла. он точно такой же как и test.php
не делай ты перенаправление ввода/вывода, напиши внутри test1.php (или как он у тебя называется) функцию записи в файл и проблема
исчезнет сама собой.
 

bmn

Новичок
ThomLee, это решение ЗАДАЧИ, но не проблемы в целом. Работает что-то не правильно, так быть не должно. Буду дальше разбираться..

-~{}~ 27.06.06 22:44:

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

-~{}~ 28.06.06 00:25:

Подключил РНР как Модуль Апач. заработало. Придётся так и оставить, хоть и возможностей меньше..
--
наверное топик можно закрыть.
 
Сверху