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

Discussion in 'PHP' started by Vinsik, 11 Jan 2009.

  1. Vinsik

    Vinsik Elder - Старейшина

    Joined:
    4 Oct 2008
    Messages:
    189
    Likes Received:
    4
    Reputations:
    -5
    Здрасти всем =)
    Помогите научить скрипт вытягивать информацию из mp3 файлов =)
    Битрейт, продолжительность, размер.
    PHP:
    <?
        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'] ? substrbasename($_FILES['attached']['name']), -30 ) : '');
            
    $x strtolowersubstr($_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){
    ?>
     
    #1 Vinsik, 11 Jan 2009
    Last edited: 11 Jan 2009
  2. inlanger

    inlanger Elder - Старейшина

    Joined:
    7 Jan 2007
    Messages:
    985
    Likes Received:
    283
    Reputations:
    27
    http://www.phpclasses.org/browse/package/640.html
    Class: MP3 ID3v2 Tag
    покажет всё о файле
     
  3. Vinsik

    Vinsik Elder - Старейшина

    Joined:
    4 Oct 2008
    Messages:
    189
    Likes Received:
    4
    Reputations:
    -5
    Я смотрел. Он вроде как только теги вытягивает. И я не знаю как его воткнуть в скрипт( нупчик я =)
     
  4. inlanger

    inlanger Elder - Старейшина

    Joined:
    7 Jan 2007
    Messages:
    985
    Likes Received:
    283
    Reputations:
    27
    Если нупчик, то учи матчасть, а потом пиши сложные скрипты.
     
  5. Vinsik

    Vinsik Elder - Старейшина

    Joined:
    4 Oct 2008
    Messages:
    189
    Likes Received:
    4
    Reputations:
    -5
    ну могли бы хотяб дать ссылку на скрипт который будет вытягивать из мп3шек не теги а именно битрейт и продолжительность.
     
  6. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    809
    Reputations:
    231
    http://www.sourcerally.net/Scripts/20-PHP-MP3-Class
     
    _________________________
    1 person likes this.
  7. Vinsik

    Vinsik Elder - Старейшина

    Joined:
    4 Oct 2008
    Messages:
    189
    Likes Received:
    4
    Reputations:
    -5
    спс +3 , если напишу шару с этой инфой выложу сюды.
     
  8. Vinsik

    Vinsik Elder - Старейшина

    Joined:
    4 Oct 2008
    Messages:
    189
    Likes Received:
    4
    Reputations:
    -5
    Уменя одна проблема. Я не могу найти перменую битрейта и продолжительности) Помогите
    http://www.sourcerally.net/Scripts/20-PHP-MP3-Class
     
  9. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    function doFrameStuff($parts)
     
  10. Vinsik

    Vinsik Elder - Старейшина

    Joined:
    4 Oct 2008
    Messages:
    189
    Likes Received:
    4
    Reputations:
    -5
    не получается( Если укаво будет время помогите пожалуйста(
     
  11. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    PHP:
    <?
    //Extract the exact length of time 
    $path 'path.mp3'
    $mp3 = new mp3($path); 
    $mp3->setFileInfoExact(); 
    echo 
    $mp3->time;
    ?>
    все примеры сверху самого, просто закоментированны
     
  12. Vinsik

    Vinsik Elder - Старейшина

    Joined:
    4 Oct 2008
    Messages:
    189
    Likes Received:
    4
    Reputations:
    -5
    Только к сожалению я не понял ничего( Как это связать(
     
  13. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    :) Сохрани весь код, что там выложен (а лучше какой-то исправленный из первого каминта к коду скачай) как mp3.class.php и в своём коде на первой строчке напиши:

    PHP:
    <?php
    include ('mp3.class.php');
    а дальше код из примера, например так:

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

    Vinsik Elder - Старейшина

    Joined:
    4 Oct 2008
    Messages:
    189
    Likes Received:
    4
    Reputations:
    -5
    Ну и как же мне написать все это? не работает ниче! Я пробовал(
    Вот
    PHP:
    <?
        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'] ? substrbasename($_FILES['attached']['name']), -30 ) : '');
            
    $x strtolowersubstr($_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
     
  15. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    $path .= '($filen)',";

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

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

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

    PHP:
    <?php 
    include ('mp3.class.php'); 
    $path 'path.mp3';   
    $mp3 = new mp3($path);   
    $mp3->setFileInfoExact();   
    echo 
    $mp3->time
    ?>
    только вместо path.mp3 напиши имя твоего .mp3
     
    #15 Pashkela, 11 Jan 2009
    Last edited: 11 Jan 2009
  16. Vinsik

    Vinsik Elder - Старейшина

    Joined:
    4 Oct 2008
    Messages:
    189
    Likes Received:
    4
    Reputations:
    -5
    Так имя моего mp3 ведь всегда меняется. В зависимости от загруженого файла!
     
  17. Vinsik

    Vinsik Elder - Старейшина

    Joined:
    4 Oct 2008
    Messages:
    189
    Likes Received:
    4
    Reputations:
    -5
    И какая же тут переменая выдаст мне информацию о битрете и прдолжительности?) Я ее не вижу) Вот пример как я хочу.
    PHP:
    <tr>
                <td><div align="center"><br>
                    <font color="FFFFFF">Код для форума если вы загружали mp3 файл.</font>
                    <br>
                    <textarea name="textarea" cols="100" wrap="soft" rows="3">[center][url=<?=$filen?>] $БИТРЕЙТ $ПРОДОЛЖИТЕЛЬНОСТЬ СКАЧАТЬ[/url]
    [player]<?=$filen?>[/player][/center]</textarea>

                </div></td>
            </tr>
     
  18. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    ну дык и сделай тогда так примерно:

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

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

    $path = $uniq;

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

    Vinsik Elder - Старейшина

    Joined:
    4 Oct 2008
    Messages:
    189
    Likes Received:
    4
    Reputations:
    -5
    Картинки обложки альбомов. И какие мне переменые подставлять в код чтоб получить $битрейт и $продолжительность?
     
  20. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    /thread100792.html