PDA

Просмотр полной версии : Помогите научить скрипт вытягивать информацию из mp3 файлов


Vinsik
11.01.2009, 16:53
Здрасти всем =)
Помогите научить скрипт вытягивать информацию из mp3 файлов =)
Битрейт, продолжительность, размер.
<?
include("include/common.php");

if($loggedin){
include("include/accmenu.php");
}
if( $_POST['submit'] && $_FILES['attached']['name'] ){
$ok_filetypes = explode("|",$att_filetypes);
if (!$_FILES['attached']['error'] && $_FILES['attached']['size'] > $att_max_size*1024){
errform('<CENTER>Извините, слишком большой размер файла!</CENTER><BR><BR>'); // #err
$step = 1;
}
$filename = (!$_FILES['attached']['error'] ? substr( basename($_FILES['attached']['name']), -30 ) : '');
$x = strtolower( substr($_FILES['attached']['name'], -3));
if($filename && !in_array($x, $ok_filetypes) ){
errform('<CENTER>Не поддерживаемый тип файла!!!</CENTER><BR><BR>');
$step = 1;
}
if(!$posterr){
if(!isset($_GET["ipaddress"]) || ($_GET["ipaddress"] == "")) {
$ipaddress = $_SERVER['REMOTE_ADDR'];
$local = 1;
} else {
$ipaddress = $_GET["ipaddress"];
$local = 0;
}
$uniq = strtolower(str_replace(' ','_',($_FILES['attached']['name'])));
move_uploaded_file($_FILES['attached']['tmp_name'], $att_path."/".$uniq.".".$ext );
$strQuery = "INSERT INTO images25 SET ";
$strQuery .= "filename='($uniq)',";
if($myuid){
$strQuery .= "user='{$myuid}',";
}
$strQuery .= "status='1'";
$result = mysql_query($strQuery) or die( mysql_error() );
$aid = mysql_insert_id();
if($aid){
$filen = $siteurl."/".str_replace('./', '', $att_path)."/".$uniq."";
$filen = str_replace('http://','%%',$filen);
$filen = str_replace('//','/',$filen);
$filen = str_replace('%%','http://',$filen);


//ITS AN IMAGE
if($x=="jpg" or $x=="jpeg" or $x=="gif" or $x=="png" or $x=="jif" or $x=="jfif")
{
$filenx=$filen;
}
else
{
include("include/const.inc.php");
$filenx = $siteurl."/icons/".$Icons[$ext];
}


$step = 2;
}else{
$step = 1;
}
}
}else{
$step = 1;
}
if($step == 1){
?>

inlanger
11.01.2009, 18:21
http://www.phpclasses.org/browse/package/640.html
Class: MP3 ID3v2 Tag
покажет всё о файле

Vinsik
11.01.2009, 18:29
http://www.phpclasses.org/browse/package/640.html
Class: MP3 ID3v2 Tag
покажет всё о файле
Я смотрел. Он вроде как только теги вытягивает. И я не знаю как его воткнуть в скрипт( нупчик я =)

inlanger
11.01.2009, 18:33
Если нупчик, то учи матчасть, а потом пиши сложные скрипты.

Vinsik
11.01.2009, 18:39
Если нупчик, то учи матчасть, а потом пиши сложные скрипты.
ну могли бы хотяб дать ссылку на скрипт который будет вытягивать из мп3шек не теги а именно битрейт и продолжительность.

Kaimi
11.01.2009, 18:40
http://www.sourcerally.net/Scripts/20-PHP-MP3-Class

Vinsik
11.01.2009, 19:01
http://www.sourcerally.net/Scripts/20-PHP-MP3-Class
спс +3 , если напишу шару с этой инфой выложу сюды.

Vinsik
11.01.2009, 19:27
Уменя одна проблема. Я не могу найти перменую битрейта и продолжительности) Помогите
http://www.sourcerally.net/Scripts/20-PHP-MP3-Class

Pashkela
11.01.2009, 19:29
function doFrameStuff($parts)

Vinsik
11.01.2009, 20:14
не получается( Если укаво будет время помогите пожалуйста(

Pashkela
11.01.2009, 20:18
<?
//Extract the exact length of time
$path = 'path.mp3';
$mp3 = new mp3($path);
$mp3->setFileInfoExact();
echo $mp3->time;
?>


все примеры сверху самого, просто закоментированны

Vinsik
11.01.2009, 20:45
<?
//Extract the exact length of time
$path = 'path.mp3';
$mp3 = new mp3($path);
$mp3->setFileInfoExact();
echo $mp3->time;
?>


все примеры сверху самого, просто закоментированны
Только к сожалению я не понял ничего( Как это связать(

Pashkela
11.01.2009, 20:52
:) Сохрани весь код, что там выложен (а лучше какой-то исправленный из первого каминта к коду скачай) как mp3.class.php и в своём коде на первой строчке напиши:


<?php
include ('mp3.class.php');


а дальше код из примера, например так:


<?php
include ('mp3.class.php');
$path = 'path.mp3';
$mp3 = new mp3($path);
$mp3->setFileInfoExact();
echo $mp3->time;
?>

Vinsik
11.01.2009, 21:07
:) Сохрани весь код, что там выложен (а лучше какой-то исправленный из первого каминта к коду скачай) как mp3.class.php и в своём коде на первой строчке напиши:


<?php
include ('mp3.class.php');


а дальше код из примера, например так:


<?php
include ('mp3.class.php');
$path = 'path.mp3';
$mp3 = new mp3($path);
$mp3->setFileInfoExact();
echo $mp3->time;
?>

Ну и как же мне написать все это? не работает ниче! Я пробовал(
Вот
<?
include("include/common.php");
include ('mp3.class.php');

if($loggedin){
include("include/accmenu.php");
}
if( $_POST['submit'] && $_FILES['attached']['name'] ){
$ok_filetypes = explode("|",$att_filetypes);
if (!$_FILES['attached']['error'] && $_FILES['attached']['size'] > $att_max_size*1024){
errform('<CENTER>Èçâèíèòå, ñëèøêîì áîëüøîé ðàçìåð ôàéëà!</CENTER><BR><BR>'); // #err
$step = 1;
}
$filename = (!$_FILES['attached']['error'] ? substr( basename($_FILES['attached']['name']), -30 ) : '');
$x = strtolower( substr($_FILES['attached']['name'], -3));
if($filename && !in_array($x, $ok_filetypes) ){
errform('<CENTER>Íå ïîääåðæèâàåìûé òèï ôàéëà!!!</CENTER><BR><BR>');
$step = 1;
}
if(!$posterr){
if(!isset($_GET["ipaddress"]) || ($_GET["ipaddress"] == "")) {
$ipaddress = $_SERVER['REMOTE_ADDR'];
$local = 1;
} else {
$ipaddress = $_GET["ipaddress"];
$local = 0;
}
$uniq = strtolower(str_replace(' ','_',($_FILES['attached']['name'])));
move_uploaded_file($_FILES['attached']['tmp_name'], $att_path."/".$uniq.".".$ext );
$strQuery = "INSERT INTO images25 SET ";
$strQuery .= "filename='($uniq)',";
if($myuid){
$strQuery .= "user='{$myuid}',";
}
$strQuery .= "status='1'";
$result = mysql_query($strQuery) or die( mysql_error() );
$aid = mysql_insert_id();
if($aid){
$filen = $siteurl."/".str_replace('./', '', $att_path)."/".$uniq."";
$filen = str_replace('http://','%%',$filen);
$filen = str_replace('//','/',$filen);
$filen = str_replace('%%','http://',$filen);


//ITS AN IMAGE
if($x=="jpg" or $x=="jpeg" or $x=="gif" or $x=="png" or $x=="jif" or $x=="jfif")
{
$filenx=$filen;
}
else
{
include("include/const.inc.php");
$filenx = $siteurl."/icons/".$Icons[$ext];
}


$step = 2;
}else{
$step = 1;
}
}
}else{
$step = 1;
}
if($step == 1){


$path .= '($filen)',";
$mp3 = new mp3($path);
$mp3->setFileInfoExact();
echo $mp3->time;


?>

$filen это например http://real.lan/share/uploads/1.mp3

Pashkela
11.01.2009, 21:21
$path .= '($filen)',";

это чо такое? Если локально файл находится, то надо пользовать абсолютные пути, а не http, а еще если пишешь переменные в кавычках, то он должны быть двойные, а не одинарные, и что такое в конце ," - вообще не понятно

Оттести сначала отдельно в общем, не вставляй никогда незнакомый код сразу в проект

т.е. от_юзай это:

<?php
include ('mp3.class.php');
$path = 'path.mp3';
$mp3 = new mp3($path);
$mp3->setFileInfoExact();
echo $mp3->time;
?>


только вместо path.mp3 напиши имя твоего .mp3

Vinsik
11.01.2009, 21:34
$path .= '($filen)',";

это чо такое? Если локально файл находится, то надо пользовать абсолютные пути, а не http, а еще если пишешь переменные в кавычках, то он должны быть двойные, а не одинарные, и что такое в конце ," - вообще не понятно

Оттести сначала отдельно в общем, не вставляй никогда незнакомый код сразу в проект

т.е. от_юзай это:

<?php
include ('mp3.class.php');
$path = 'path.mp3';
$mp3 = new mp3($path);
$mp3->setFileInfoExact();
echo $mp3->time;
?>


только вместо path.mp3 напиши имя твоего .mp3
Так имя моего mp3 ведь всегда меняется. В зависимости от загруженого файла!

Vinsik
11.01.2009, 21:36
И какая же тут переменая выдаст мне информацию о битрете и прдолжительности?) Я ее не вижу) Вот пример как я хочу. <tr>
<td><div align="center"><br>
<font color="FFFFFF">Код для форума если вы загружали mp3 файл.</font>
<br>
<textarea name="textarea" cols="100" wrap="soft" rows="3"> $БИТРЕЙТ $ПРОДОЛЖИТЕЛЬНОСТЬ СКАЧАТЬ (<?=$filen?>)
<?=$filen?></textarea>

</div></td>
</tr>

Pashkela
11.01.2009, 21:41
ну дык и сделай тогда так примерно:

$path = "/директория_загрузки/имя_только_что_загруженног _файла";

или, судя по твоему коду, так:

$path = $uniq;

И всё. Только у тебя там какие-то картинки загружаются вообще-то

Vinsik
11.01.2009, 22:40
ну дык и сделай тогда так примерно:

$path = "/директория_загрузки/имя_только_что_загруженног _файла";

или, судя по твоему коду, так:

$path = $uniq;

И всё. Только у тебя там какие-то картинки загружаются вообще-то
Картинки обложки альбомов. И какие мне переменые подставлять в код чтоб получить $битрейт и $продолжительность?

Pashkela
12.01.2009, 00:33
http://forum.antichat.ru/thread100792.html