Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di mt19
    Registrato dal
    Jul 2011
    Messaggi
    180

    DOMDocument per pagina 404 non funziona

    Salve a tutti, sto creando uno script che mi verifichi se un url porta veramente a una canzone, o meno. Il sito in questione è questo:
    http://www.jamendo.com/

    Per esempio questo link porta a una canzone:
    http://storage-new.newjamendo.com/do...ck/100007/mp32
    mentre questo mi porta a una pagina di errore:
    http://storage-new.newjamendo.com/do...ck/100407/mp32

    Per verificare se un link è "vero" o meno ho pensato di usare DOMDocument:
    Codice PHP:
    <?php
       $DOM 
    = new DOMDocument;   $DOM->LoadHTMLFile('link');
       
    $items $DOM->getElementsByTagName('body');
       for (
    $i 0$i $items->length$i++)        echo $items->item($i)->nodeValue "<br/>";
    ?>
    Questo script lo uso di solito per prendere parti di sito (per quello c'è un for, che qua non serve, ovviamente), mi ha sempre funzionato, e se metto un link di un sito qualsiasi mi va, ma non riesco a capire per quale motivo se metto, per esempio, questo link:
    http://storage-new.newjamendo.com/do...ck/100407/mp32
    non mi restituisce nessun risultato.... è come se non riuscisse a prendere la scritta.

    Consigli? Anche un cambio di direzione completo andrebbe benone

  2. #2
    Utente di HTML.it L'avatar di mt19
    Registrato dal
    Jul 2011
    Messaggi
    180
    Se servisse a qualcuno, sono riuscito a farlo funzionare tramite curl

  3. #3
    Quote Originariamente inviata da mt19 Visualizza il messaggio
    Se servisse a qualcuno, sono riuscito a farlo funzionare tramite curl
    risposta esatta.

    posta la soluzione
    Questa volta, più che un voto.. è favoreggiamento.

  4. #4
    Utente di HTML.it L'avatar di mt19
    Registrato dal
    Jul 2011
    Messaggi
    180
    In pratica ho fatto questo ragionamento: se mi porta alla pagina 404 allora la pagina si carica in meno di 1 secondo, mentre se porta a una canzone questa ci mette più di un secondo per essere scaricata (ovviamente dipende dalla linea che si ha). A questo punto ho creato una funzione del genere:

    Codice PHP:
    function get_data($url) {    $ch curl_init();    curl_setopt($chCURLOPT_URL$url);    curl_setopt($chCURLOPT_RETURNTRANSFER1);    curl_setopt($chCURLOPT_CONNECTTIMEOUT5);    curl_setopt($chCURLOPT_TIMEOUT1);    $data curl_exec($ch);    curl_close($ch);    return $data;}

    if(!
    get_data($link)){ 
    Con questo if dico se non riesce a caricare nulla (perchè ci mette più di un secondo) allora è una musica

    Semplice e per me funziona!

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 © 2025 vBulletin Solutions, Inc. All rights reserved.