number_of_words=`wc -w *.txt`
echo $number_of_words
#result would be something like:
#165 readme.txt 388 results.txt 588 summary.txt
#and so on....
在您的 PHP
脚本中,您可以在 shell_exec() 中运行这个简单的命令,如清单
2 所示,并获取想要的结果。这里假设在同一个目录下有一些文本文件。
清单 2.
在 shell_exec() 中运行相同的命令
<?php
$results = shell_exec('wc -w *.txt');
echo $results;
?>
在图 1
中可以看到,获得的结果与从 shell 脚本得到的一样。这是因为
shell_exec()
允许您通过 shell 运行外部程序,然后以字符串的形式返回结果。
图 1.
通过 shell_exec()
运行 shell 命令的结果
注意,仅使用后撇号操作符也会得到相同的结果,如下所示。
清单 3. 仅使用后撇号操作符
<?php
$results = `wc -w *.txt`;
echo $results;
?>
清单 4 给出了一种更加简单的方法。
清单 4. 更加简单的方法
<?php
echo `wc -w *.txt`;
?>
通过 UNIX
命令行和 shell 脚本能够完成很多东西,知道这点很重要。例如,您可
以使用竖线将命令连接起来。您甚至可以使用操作符在其中创建 shell 脚本,并且仅调用
shell 脚本(根据需要使用或不使用参数)。
例如,如果您仅希望计算该目录下的前 5 个文本文件的单词数,那么可以使用
竖线 (|)
将 wc
和 head
命令连接起来。另外,您还可以将输出结果放到 pre 标记内部,
让它能够更美观地呈现在 Web 浏览器中,如下所示。
清单 5.
更加复杂的 shell 命令
<?php
$results = shell_exec('wc -w *.txt | head -5');