使用getID3解析ID3

Posted

技术标签:

【中文标题】使用getID3解析ID3【英文标题】:Using getID3 to parse ID3 【发布时间】:2017-02-24 15:31:59 【问题描述】:

//////////////////// 解决方案 ///////////////////////p>

我的语法有问题,我使用 + 而不是 .连接 Music/ 和 $file。

require ('getid3/getid3.php');


         $getID3 = new getID3;


            if ($handle = opendir('Music/')) 
            while (false !== ($file = readdir($handle))) 
                if ($file != "." && $file != "..") 


                //echo $file;



                $ThisFileInfo = $getID3->analyze("Music/".$file);

                // Delete temporary file

                echo '<li><a href=" Music/'.$file.'">'.$file.'</a>  <br>';
                print_r ($ThisFileInfo);
                echo   '</li>' ;
                
            
closedir($handle);



            

////////////////////// 问题 /////////////////////

简短的解释是这个循环应该提取元数据并将其打印到带有下载链接的页面。它将执行此操作的次数与列出的目录中的文件一样多。该循环完美运行,但是该数组未提取元数据。我让它在 xampp 服务器上本地运行。

        require ('getid3/getid3.php');


         $getID3 = new getID3;


            if ($handle = opendir('Music/')) 
            while (false !== ($file = readdir($handle))) 
                if ($file != "." && $file != "..") 

                //echo $file;


                $ThisFileInfo = $getID3->analyze("Music/ " + $file);

                // Delete temporary file

                echo '<li><a href=" Music/'.$file.'">'.$file.'</a>  <br>';
                print_r ($ThisFileInfo);
                echo   '</li>' ;
                
            
closedir($handle);

    

这是我在页面上看到的。

Lunar_2_Blue_Star_Prayer_OC_ReMix.mp3 数组([GETID3_VERSION] => 1.9.12-201602240818 [错误] => 数组([0] => 无法打开“0”(!is_readable;!is_file;!file_exists))) Retro_City_Rampage_Retrohead_Five_OC_ReMix.mp3 数组([GETID3_VERSION] => 1.9.12-201602240818 [错误] => 数组([0] => 无法打开“0”(!is_readable;!is_file;!file_exists))) Super_Mario_RPG_The_Usurper_Queen_OC_ReMix.mp3 数组([GETID3_VERSION] => 1.9.12-201602240818 [error] => 数组([0] => 无法打开“0”(!is_readable;!is_file;!file_exists)))

file structure more structure

【问题讨论】:

我认为文件夹的权限有问题。你对文件夹有什么权限? 我没有设置。它只是在 XAMMP 服务器上运行, 我在测试服务器上得到了相同的结果。 您确定该目录存在吗?试试DIR 我张贴了根文件夹和 mp3 文件所在文件夹的几个大写字母。该目录必须存在,否则我将无法获得任何文件名。主要问题是我没有得到任何元标记,这是导致错误的原因。我得到了所有的文件名,它会正确地循环打印文件名。 【参考方案1】:

////////////////////////////////////////////////////////////////////////// p>

我的语法有问题,我使用 + 而不是 .连接 Music/ 和 $file。

需要('getid3/getid3.php');

     $getID3 = new getID3;


        if ($handle = opendir('Music/')) 
        while (false !== ($file = readdir($handle))) 
            if ($file != "." && $file != "..") 


            //echo $file;



            $ThisFileInfo = $getID3->analyze("Music/".$file);

            // Delete temporary file

            echo '<li><a href=" Music/'.$file.'">'.$file.'</a>  <br>';
            print_r ($ThisFileInfo);
            echo   '</li>' ;
            
        

closedir($handle);

        

【讨论】:

以上是关于使用getID3解析ID3的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 getid3 函数检索艺术家、评论、标题和其他 ID3 标签?

从 MP3 Streaming 获取 ID3 标签

如何使用 Mp3agic jar Android studio 从 MP3 文件中获取 ID3 歌词标签?

如何使用 getID3 获取长度视频

php 获取 mp3 文件持续时间远程文件

使用 getid3() 插入专辑艺术家标签