我有一个php脚本foo.php
#!/usr/bin/php -c /etc/php5/cli/php.ini -q
<?php
echo 'hello'; // & do some stuff
?>
我将此脚本称为而非包装为sh-script,但直接在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
答案 0 :(得分:0)
shebang语句从来没有打算控制脚本的输出,它更像是一个使用这个程序来执行这里下面的类型的交易,因此没有你想要的选项。 / p>
除非解释器本身有输出参数(php cli没有),否则你需要将> /dev/null
语句保留在crontab行中。
您还可以修改脚本,使其具有全局布尔值$output
,包含所有带print
语句的if
语句,并将其包含在文件顶部。
答案 1 :(得分:0)
就像@Victor Stanciu说的那样,你直接在cron job命令中重定向输出,但我能想到的另一种方式是:
php -r "ob_start(); include 'my_script'; ob_end_clean();"
我认为您可以使用fclose(STDOUT)
关闭标准输出,但显然常量STDIN
,STDOUT
和STDERR
不再存在。