我正在使用PECL
扩展名从mp3中提取ID3
标记,这是我打印数组的代码:
<?php
$tag = id3_get_tag( "/var/www/music/rem.mp3");
print_r ($tag);
?>
但是当我在浏览器中运行该文件时没有任何反应我尝试在终端中执行它并且它工作得很好它给了我输出:
maniteja@maniteja:~$ sudo php /var/www/index.php
Array
(
[title] => Lexter - Who's Laughing now (Mr. Day Lens remix)
[album] => LEXTER - Who's Laughing now
[releaseTime] => 2013
[track] => 01
[genre] => (255)
[artist] => Алексей
[publisher] => Jamendo
[copyright] => 2013-11-28T21:32:03+01:00 Алексей. Licensed to the public underhttp://creativecommons.org/licenses/by/3.0/ verify at http://www.jamendo.com/album/129077/
[encodedBy] => Jamendo : http://www.jamendo.com | LAME
[commInfo] => http://www.jamendo.com
[copyrightInfo] => http://creativecommons.org/licenses/by/3.0/
[webOffAudioFile] => http://www.jamendo.com/en/track/1083749
[webOffArtist] => http://www.jamendo.com/en/artist/Mr._Day_Lens
[webOffAudioSrc] => http://www.jamendo.com/en/album/129077
[webOffPubl] => http://www.jamendo.com
[taggingTime] => 2013-11-28T20:33:57
)
语法错误???我是新来的..
答案 0 :(得分:2)
修改:
正如 @ajtrichards 所说:
“您无权阅读/ var / www / music中的文件。您需要允许访问您的网络服务器”
转到您的/var/www/music
文件夹,并为您的服务器提供正确的权限,以便在那里阅读。
如果您使用Apache:
How to make a directory apache readable on ubuntu
PHP有两个环境。
您的扩展程序在CLI环境中完美运行,因为您在CLI php.ini上添加了PECL扩展。
您需要确保将扩展名添加到网络php.ini。
要对其进行测试,请通过phpinfo电话进行test.php
。
并通过浏览器访问它
这将输出“web”PHP的所有php.ini配置
然后在所有扩展程序列表中搜索您的ID3
扩展程序
如果它不显示,则不会添加到“web环境”php.ini中。
要添加它,您必须执行与将其添加到CLI php.ini
相同的操作有点像,添加这一行
extension=id3.so
有关ID3的更多信息 http://www.php.net/manual/en/id3.installation.php
答案 1 :(得分:0)
这可以通过命令行PHP工作,因为用户root
有权从文件夹/var/www/music
中读取,因为Maniteja使用sudo php
来运行php文件。
但是,当脚本在Web浏览器中通过PHP运行时,Web服务器没有从文件夹中读取的权限,因此出现错误:
PHP警告:id3_get_tag(/var/www/music/rem.mp3):无法打开 stream:第2行/var/www/index.php中的权限被拒绝
解决此问题 - 授予对Web服务器用户的读取权限。