Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Utilizzo curl

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    21

    Utilizzo curl

    salve, vorrei cheidervi un aiuto per risolvere un problema.
    praticamente sul mio dominio ho una pagina html che dovrebbe mandare in esecurione un brano tramite un player:
    codice HTML:
    <body> <!-- SCM Music Player http://scmplayer.net -->
    <script type="text/javascript" src="http://scmplayer.net/script.js" 
    data-config="{'skin':'skins/tunes/skin.css','volume':50,'autoplay':false,'shuffle':false,'repeat':0,'placement':'top','showplaylist':true,'playlist':[{'title':'riders','url':'https://www.youtube.com/watch?v=lS-af9Q-zvQ'},{'title':'b','url':'http://stream3.myfreemp3.cc/dvv.php?q=80nj1rtgjsi/'},{'title':'c','url':'http://www.thesixtyone.com/s/nrPBgjSXtM2/'}]}" ></script>
    <!-- SCM Music Player script end --></body>
    questo blocco dovrebbe visualizzare il player così: 1.jpg.

    adesso quello che serve a me è copiare la durata del brano che c'è nella pagina(in alto a destra) e salvarlo in una variabile.
    quello che sono riuscito a fare fin ora è questo:
    Codice PHP:
    <?php
     
    function curl_download($Url){
      
        if (!
    function_exists('curl_init')){
            die(
    'cURL is not installed. Install and try again.');
        }
      
        
    $ch curl_init();
        
    curl_setopt($chCURLOPT_URL$Url);
        
    curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
        
    $output curl_exec($ch);
        
    curl_close($ch);
       
        
    $start strpos($output'<!-- SCM Music Player http://scmplayer.net -->');
        
    $end strpos($output'<!-- SCM Music Player script end -->'$start);
        
    $length $end-$start;
        
    $output substr($output$start$length);
      
        return 
    $output;
    }
     
    print 
    curl_download('http://localhost/index.html');
     
    ?>
    che però estrae il player per intero.. qualcuno saprebbe darmi qualche dritta su come fare a prendere soltanto il timer?
    grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di Disema
    Registrato dal
    Sep 2014
    Messaggi
    63
    Devi cercare nel codice tra <!-- SCM Music Player http://scmplayer.net e '<!-- SCM Music Player script end --> se li trovi anche il timer(quindi sotto forma di codice html) pouoi prenderlo senza problemi, con le stesse funzioni che hai usato per prendere il codice del player, se invece questo timer sta solo nel player che magari è in flash non so se curl può esserti d'aiuto.

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    21
    Quote Originariamente inviata da Disema Visualizza il messaggio
    Devi cercare nel codice tra <!-- SCM Music Player http://scmplayer.net e '<!-- SCM Music Player script end --> se li trovi anche il timer(quindi sotto forma di codice html) pouoi prenderlo senza problemi, con le stesse funzioni che hai usato per prendere il codice del player, se invece questo timer sta solo nel player che magari è in flash non so se curl può esserti d'aiuto.
    da quel che vedo è uscito fuori nuovamente il player, senza codice, quindi credo che il timer stia solo nel player.. ci sono altre soluzioni per capire quando il brano termina la propria esecuzione?

  4. #4
    processa l'output di curl come un DOMDocument cosi poi è più semplice recuperare i dati...

    Codice PHP:
    $dom DOMDocument::loadHtml$output ); 
    Questa volta, più che un voto.. è favoreggiamento.

  5. #5
    Utente di HTML.it L'avatar di Disema
    Registrato dal
    Sep 2014
    Messaggi
    63
    Non so se si può fare, ma se puoi accedere ai file musicali(credo siano mp3) ci sarà sicuramente qualche funzione php per poterli leggere.
    Prova a vedere se questo funziona con quello che ti serve http://stackoverflow.com/questions/4...t-of-mp3-files

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    21
    Quote Originariamente inviata da Al_katraz984 Visualizza il messaggio
    processa l'output di curl come un DOMDocument cosi poi è più semplice recuperare i dati...

    Codice PHP:
    $dom DOMDocument::loadHtml$output ); 

    seguendo il tuo consiglio ho provato a fare così:
    Codice PHP:
    <?php
    $doc 
    = new DOMDocument();
    $doc->loadHTMLFile("http://localhost/index.html");
    echo 
    $doc->saveHTML();
    ?>
    ma il risultato sembra rimanere lo stesso, continuo a vedere soltanto player

  7. #7
    da quel che vedo devi intanto recuperare con il dom lo script che ti interessa
    dal tag script devi recuperare l'attributo "data-config"
    e questo contenuto sembra formattato come json quindi convertirlo in array
    usare i dati

    ti do alcuni spunti
    Codice PHP:
    function curl_download($Url){
      
        if (!
    function_exists('curl_init')){
            die(
    'cURL is not installed. Install and try again.');
        }
      
        
    $ch curl_init();
        
    curl_setopt($chCURLOPT_URL$Url);
        
    curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
        
    $output curl_exec($ch);
        
    curl_close($ch);

        
    $dom DOMDocument::loadHTML$output );
        
    $script $dom->getElementsByTagName'script' );

        for ( 
    $i=0$i $script->length$i++ ) {
            
    $meta $script->item($i);

            
    $src $meta->getAttribute'src' );
            if ( 
    $src == 'http://scmplayer.net/script.js' ) {
                 
    $config $meta->getAttribute'data-config' );
            }
        }


        return 
    $config;

    Questa volta, più che un voto.. è favoreggiamento.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.