2012-01-13 61 views
0

有一个叫getID3(用PHP编写)程序,它从你的音乐,并把它打印出来的文本形式复制所有的ID3标签:http://getid3.sourceforge.net/如何将stdout作为php脚本中的参数传递给linux终端?

有需要你的歌的路径中的一个功能,我还想写一些代码使整个过程自动化,以便我可以提供父目录的路径,并且所有子目录中的所有歌曲都可以为我打印出它们的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。

回答

2
<?php 

$list = array(); 

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

?> 
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 
的结果,它
相关问题