Перенаправить вывод PHP-Shell-Script - PullRequest
0 голосов
/ 12 июня 2010

у меня есть php-скрипт foo.php

#!/usr/bin/php -c /etc/php5/cli/php.ini -q
<?php
  echo 'hello'; // & do some stuff
?>

Я называю этот скрипт , а не , завернутый в sh-скрипт, но использующий его непосредственно в задании cron. Чтобы избавиться от его вывода, я обычно просто создаю sh-файл, который вызывает

/usr/bin/php -c /etc/php5/cli/php.ini -q foo.php > /dev/null 2 > /dev/null 

Теперь я хотел бы сделать это в объявлении интерпретатора php-файла, который он сам ... поэтому я ищу синтаксис для:

#!/usr/bin/php -args [file's content] > /redirect 2 > /redirect

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

Спасибо заранее

Corelgott

Ответы [ 2 ]

0 голосов
/ 12 июня 2010

Например, @Victor Stanciu сказал, что вы перенаправляете вывод непосредственно в команде задания cron, но я могу думать только о следующем:

php -r "ob_start(); include 'my_script'; ob_end_clean();"

Я думаю, вы можете закрыть стандартный вывод с fclose(STDOUT), но, по-видимому, константы STDIN, STDOUT и STDERR больше не существуют.

0 голосов
/ 12 июня 2010

Оператор shebang никогда не предназначался для управления выводом скрипта, более того, использует эту программу для выполнения того, что находится под типом сделки, поэтому у вас нет выбора того, что вы хотите. *

Если у самого интерпретатора нет выходного аргумента (чего нет у php cli), вам нужно будет сохранить оператор > /dev/null в строке crontab.

Вы также можете изменить свои сценарии, чтобы они имели глобальное логическое значение $output, заключив все операторы print в операторы if и включив их в начало файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...