PHP打印阵列无法正常工作

时间:2014-01-14 14:19:09

标签: php arrays pecl id3

我正在使用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
)

语法错误???我是新来的..

2 个答案:

答案 0 :(得分:2)

修改:

正如 @ajtrichards 所说:
 “您无权阅读/ var / www / music中的文件。您需要允许访问您的网络服务器”

转到您的/var/www/music文件夹,并为您的服务器提供正确的权限,以便在那里阅读。

如果您使用Apache:
How to make a directory apache readable on ubuntu


PHP有两个环境。

  1. 网络环境。
  2. CLI环境。
  3. 您的扩展程序在CLI环境中完美运行,因为您在CLI php.ini上添加了PECL扩展。

    您需要确保将扩展名添加到网络php.ini。

    要对其进行测试,请通过phpinfo电话进行test.php

    并通过浏览器访问它 这将输出“web”PHP的所有php.ini配置 然后在所有扩展程序列表中搜索您的ID3扩展程序 如果它不显示,则不会添加到“web环境”php.ini中。

    要添加它,您必须执行与将其添加到CLI php.ini

    相同的操作

    有点像,添加这一行

    extension=id3.so

    PS:
    Dude, where's my php.ini?

    有关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服务器用户的读取权限。