XAMPP(Windows)上的PECL扩展安装

问题描述 投票:-1回答:1

我需要一些帮助,已经尝试过,但是甚至还没有想到要赢得胜利。

我需要在Windows的XAMPP(v7.4.5)上运行ID3 PECL

[昨天我花了一天的时间尝试通过PHP.net网站上的PECL articles,但是不幸的是,这对我来说意义不大,因为我的知识还不高。我也尝试过寻找ID3扩展名的dll文件,但找不到任何文件。 ID3 PECL页面仅可下载源文件。

也许有人有足够的耐心,可以用更多的外行话来解释这个过程……对我来说愚蠢吗?

任何帮助,我们将不胜感激。

编辑

有人可以帮忙吗?] >>

借助Lelio,我现在有了一种从MP3中提取信息的方法,我添加了两行以访问Genre

Attached Picture块。 Genre块起作用。但是,附加图片块没有。

这里是更新后的代码,保存为称为[[script-mp3-tag-reader.php

的单独的php文件:]<?php function tagReader($file) { $id3v23 = array("TIT2","TALB","TPE1","TRCK","TDRC","TLEN","USLT","TCON","APIC"); $id3v22 = array("TT2","TAL","TP1","TRK","TYE","TLE","ULT","TCO"); $fsize = filesize($file); $fd = fopen($file,"r"); $tag = fread($fd,$fsize); $tmp = ""; fclose($fd); if (substr($tag,0,3) == "ID3") { $result['FileName'] = $file; $result['TAG'] = substr($tag,0,3); $result['Version'] = hexdec(bin2hex(substr($tag,3,1))).".".hexdec(bin2hex(substr($tag,4,1))); } if($result['Version'] == "4.0" || $result['Version'] == "3.0") { for ($i=0;$i<count($id3v23);$i++) { if (strpos($tag,$id3v23[$i].chr(0))!= FALSE) { $pos = strpos($tag, $id3v23[$i].chr(0)); $len = hexdec(bin2hex(substr($tag,($pos+5),3))); $data = substr($tag, $pos, 9+$len); for ($a=0;$a<strlen($data);$a++) { $char = substr($data,$a,1); if($char >= " " && $char <= "~") { $tmp.=$char; } } if(substr($tmp,0,4) == "TIT2") $result['Title'] = substr($tmp,4); if(substr($tmp,0,4) == "TALB") $result['Album'] = substr($tmp,4); if(substr($tmp,0,4) == "TPE1") $result['Artist'] = substr($tmp,4); if(substr($tmp,0,4) == "TRCK") $result['TrackNo'] = substr($tmp,4); if(substr($tmp,0,4) == "TDRC") $result['Year'] = substr($tmp,4); if(substr($tmp,0,4) == "TLEN") $result['Lenght'] = substr($tmp,4); if(substr($tmp,0,4) == "USLT") $result['Lyric'] = substr($tmp,7); if(substr($tmp,0,4) == "TCON") $result['Genre'] = substr($tmp,4); if(substr($tmp,0,4) == "APIC") $result['AttachedPicture'] = substr($tmp,4); $tmp = ""; } } } if($result['Version'] == "2.0") { for ($i=0;$i<count($id3v22);$i++) { if (strpos($tag,$id3v22[$i].chr(0))!= FALSE) { $pos = strpos($tag, $id3v22[$i].chr(0)); $len = hexdec(bin2hex(substr($tag,($pos+3),3))); $data = substr($tag, $pos, 6+$len); for ($a=0;$a<strlen($data);$a++) { $char = substr($data,$a,1); if($char >= " " && $char <= "~") { $tmp.=$char; } } if(substr($tmp,0,3) == "TT2") $result['Title'] = substr($tmp,3); if(substr($tmp,0,3) == "TAL") $result['Album'] = substr($tmp,3); if(substr($tmp,0,3) == "TP1") $result['Artist'] = substr($tmp,3); if(substr($tmp,0,3) == "TRK") $result['TrackNo'] = substr($tmp,3); if(substr($tmp,0,3) == "TYE") $result['Year'] = substr($tmp,3); if(substr($tmp,0,3) == "TLE") $result['Lenght'] = substr($tmp,3); if(substr($tmp,0,3) == "ULT") $result['Lyric'] = substr($tmp,6); if(substr($tmp,0,3) == "TCO") $result['Genre'] = substr($tmp,3); if(substr($tmp,0,3) == "PIC") $result['AttachedPicture'] = base64_encode(substr($tmp,3)); $tmp = ""; } } } return $result; } ?>
然后在我的

index.php

文件中,按如下方式加载并使用上述PHP脚本:
<?php require_once($_SERVER['DOCUMENT_ROOT'].'/script/php/script-mp3-tag-reader.php'); $mp3 = $_SERVER['DOCUMENT_ROOT'].'/media/audio/mp3/test_audio.mp3'; $myResult = tagReader($mp3); print_r($myResult); ?>
[查看print_r($myresult);时,您可以看到信息确实存在并且在正确的位置……只是不存在附加的图像部分。我似乎提取的内容远远超出了需要的内容,并且不知道如何仅访问所需的内容。

我需要一些帮助,已经尝试过,但是甚至还没有想到要赢得胜利。我需要让ID3 PECL在Windows的XAMPP(v7.4.5)上运行。我昨天整天都在努力工作...

php xampp pecl id3 id3v2
1个回答
0
投票
这样的事情应该可以解决。它尚未经过测试,但是应该可以从mp3文件中读取所需的数据。
© www.soinside.com 2019 - 2024. All rights reserved.