我想要的是能够有选择地将STDIO 通过管道传输到 PHP 脚本。如果没有,它将从文件中获取输入。所以有时我会简单地运行脚本,有时我会做类似的事情
grep text logfile | php parseLog.php
Run Code Online (Sandbox Code Playgroud)
我有一个非常像这样的循环,当 STDIO 存在时它工作正常:
while (FALSE !== ($line = fgets(STDIN)))
{
$customLogArr[]=$line;
}
Run Code Online (Sandbox Code Playgroud)
当没有 STDIO 虽然它停止等待一些时,它甚至不会进入循环。
我想要做的是能够检测,如果我有STDIO输入与否。有没有办法做到这一点?
我有一个问题,我希望有人可能有答案.基本上我正在做的是尝试确保我总是使用一个固定的,稍微旧版本的phpunit,我把它放在我模块的文件资源中.
清单:
file
{
"/usr/bin/phpunit":
ensure => file,
owner => 'root',
group => 'root',
mode => 0755,
source => "puppet:///modules/php/phpunit"
}
Run Code Online (Sandbox Code Playgroud)
准备:我下载当前('错误')的phpunit版本并将其放在/ usr/bin中.
所以第一次运行的木偶成功了:
Notice: Compiled catalog for <hostname> in environment production in 3.06 seconds
Notice: /Stage[main]/Php/File[/usr/bin/phpunit]/content: content changed '{md5}9f61f732829f4f9e3d31e56613f1a93a' to '{md}38789acbf53196e20e9b89e065cbed94'
Notice: /Stage[main]/Httpd/Service[httpd]: Triggered 'refresh' from 1 events
Notice: Finished catalog run in 15.86 seconds
Run Code Online (Sandbox Code Playgroud)
然后我下载当前(仍然'错误')的phpunit版本并再次将它放在/ usr/bin中.
这次木偶运行失败了.
Notice: Compiled catalog for <hostname> in environment production in 2.96 seconds
Error: Could not back up /usr/bin/phpunit: Got passed new contents …Run Code Online (Sandbox Code Playgroud)