如何将stdout作为php脚本中的参数传递给linux终端?

时间:2012-01-13 06:39:23

标签: php linux bash

有一个名为getID3(用php编写)的程序,可以复制音乐中的所有id3标签并以文本形式打印出来:http://getid3.sourceforge.net/

有一个函数需要你的歌曲的路径,我想写一些代码来自动化整个过程,这样我就可以只提供父目录的路径,所有子目录中的所有歌曲都可以有他们的id3信息打印出来。

我希望使用以下BASH命令获取歌曲的所有路径:

find /myMusic -type f

将BASH命令中的每个路径作为PHP数组中的元素加载(假设为$song_information),其中数组为

find /myMusic -type f |wc -l
元素很长。

我被卡住了,因为我不知道如何从BASH终端输出到php中的数组。我的第一个想法是将bash命令的输出传递给.xml文件,然后使用php.xml解析器将每个路径加载到数组中。

这种思路是一种好方法还是有更好的方法?

我可用的工具是linux和php。我正在使用ubuntu 10.04。

3 个答案:

答案 0 :(得分:2)

<?php

$list = array();

exec ( 'find /myMusic -type f', $list );

?>

答案 1 :(得分:1)

"Input/output streams"

fgets()

如果$a是一个数组,那么分配给$a[]会附加一个元素。

答案 2 :(得分:1)

您的PHP可能如下所示:

#!/usr/bin/php
<?
$stdin = fopen('php://stdin', 'r');
while (($buffer = fgets($stdin, 4096)) !== false) {
        $lines[] = $buffer;
}
fclose($stdin);

print_r($lines);

?>

然后通过

将结果传递给它
find /myMusic -type f | ./yourscript.php