php处理<从命令行输入文件

时间:2017-01-11 16:01:03

标签: php command-line-interface stdin

我知道我可以在命令行/ shell脚本上接收args:

!#/usr/bin/php
<?php
# file name - process.php
print_r($argv);

但重定向如下:

#> ./process.php < input.txt

如何读取文件,input.txt是否已创建字符串参数或某种类型的文件指针?

2 个答案:

答案 0 :(得分:2)

Read from STDIN与C:非常相似:

<?php
$stdin = fopen('php://stdin', 'r');
// Get the whole file, line by line:
while (($line = fgets($stdin)) !== FALSE) {
    ...
}
?>

如果你想把整个文件内容放到一个变量中,那就有一个快捷方式:

$contents = stream_get_contents(STDIN);

答案 1 :(得分:1)

Oliver,您应该发布不同的答案,而不是修改用户的帖子。以下是您打算发布的内容:

#!/usr/bin/php -q
<?php
    //NOTE the -q switch in hashbang above, silences MIME type output when reading the file!
    $stdin = fopen('php://stdin', 'r');
    // Get the whole file, line by line:
    while (($line = fgets($stdin)) !== FALSE) {
        ...
    }
?>