Visualizzazione risultati 1 fino 10 di 10

Discussione: [PHP] Prelevare contenuto (html) da pagina

  1. #1
    Guest

    Post [PHP] Prelevare contenuto (html) da pagina

    Ciao a tutti, mi sono fatto questo scriptino che preleva il codice HTML dalla homepage di Google... solo che mi restituisce la variabile ($html) vuota! Perchè? xD
    Codice PHP:
    <?php
    $html
    = "";
    ob_start();
    file_get_contents("http://www.google.it/index.html");
    $html .= ob_get_contents();
    ob_end_clean();

    $html = empty($html) ? "\$html vuota" : $html;
    echo
    $html;
    ?>
    Dove sto sbagliando? xD Grazie mille...ciao Davide! ^^"

    PS. Mostra $html vuota.

    Edit: Così mi mostra delle linee, ma non tutte! xD
    Ma non mi inserisce niente nel file! xD
    Codice PHP:
    $open = fopen("http://www.google.it/index.html","r");
    $read = fread($open,sizeof("http://www.google.it/index.html"));
    echo
    "<h1>File aperto!</h1>";

    $a = fopen("google.txt","wt");
    if(
    $a) { $b = fwrite($open,$read); echo "<h2>File creato!</h2>"; }

    fclose($open);
    Grazie!!
    Ultima modifica di sIM : 21-06-2009 alle ore 15.08.47

  2. #2
    Guest

    Predefinito

    Perchè:
    Codice PHP:
    $b = fwrite($open, $read);
    Invece di:
    Codice PHP:
    fwrite($open, $read);
    Al limite potevi fare:
    Codice PHP:
    if($b) {
    echo
    "file creato";
    }
    P.S. Questo codice lo stai utilizzando su altervista? Se si ricorda alla funzione fopen() non è permesso aprire connessioni esterne!

  3. #3
    Guest

    Predefinito

    Ok..così funziona! Ma io vorrei che scrivesse tutto il file, senza indicare la linea ma con sizeof o filesize non funziona! XD
    Codice PHP:
    $open = fopen("http://www.google.it/index.html","r");
    $read = fread($open,999999);
    echo
    "<h1>File aperto!</h1>";

    $a = fopen("google.txt","wt");
    if(
    fwrite($a,$read)) { echo "<h2>File creato!</h2>"; }

    echo
    "<p>".htmlspecialchars($read)."</p>";
    fclose($open);
    Grazie mille, ciao Davide! ^^"

  4. #4
    Guest

    Predefinito

    Usa file_get_contents e file_put_contents (PHP 5)

    Codice PHP:
    <?php
    $file
    = file_get_contents("http://www.google.it");

    echo
    "<h1>File Aperto!</h1>";

    file_put_contents("google.txt", $file, LOCK_EX) || die("Errore nella creazione del file")
    ;
    echo
    "<h2>File creato!</h2>";
    echo
    "<p>".htmlspecialchars($file)."</p>";
    ?>
    Ultima modifica di nokiagames : 21-06-2009 alle ore 17.06.56

  5. #5
    Guest

    Predefinito

    ...e se non dispongo di PHP5? Cioè non lo voglio usare? XD


    Edit: Risolto senza PHP5!
    Codice PHP:
    $read = file_get_contents("http://www.google.it/index.html");
    echo
    "<h1>File aperto!</h1>";

    $a = fopen("google.txt","wt");
    if(
    fwrite($a,$read)) { echo "<h2>File creato!</h2>"; }
    fclose($a);
    Ora ho tutto il codice sorgente di quella pagina, ma come faccio a estrarre solo un determinato dato? In questo caso mi serve l'url del logo: http://www.google.it/logos/firstdaysummer09.gif come faccio a farlo estrarre a PHP da quel file (google.txt)??? Grazie! ^^"
    Ultima modifica di sIM : 21-06-2009 alle ore 19.40.54

  6. #6
    programmazioned non è connesso Utente attivo
    Data registrazione
    25-03-2008
    Messaggi
    440

    Predefinito

    Ora ho tutto il codice sorgente di quella pagina, ma come faccio a estrarre solo un determinato dato? In questo caso mi serve l'url del logo: http://www.google.it/logos/firstdaysummer09.gif come faccio a farlo estrarre a PHP da quel file (google.txt)??? Grazie! ^^"
    Devi analizzare il codice HTML, per poi costruire un'espressione regolare che estragga quello che ti serve.
    Ovviamente devi studiare le regex e le funzioni relative.
    In alternativa puoi costruire un filtro che elimini il contenuto che non ti serve fino a far rimanere il risultato.
    Ciao!
    Ultima modifica di programmazioned : 21-06-2009 alle ore 23.05.01

  7. #7
    Guest

    Predefinito

    ...in pratica come dovrei fare? xD Ho capito ben poco...
    Codice PHP:
    $file = file_get_contents("google.txt");
    $logo = "http://www.google.it/logos/(.+)";
    Così?? XD Grazie!
    Ultima modifica di sIM : 22-06-2009 alle ore 00.22.36

  8. #8
    Guest

    Predefinito

    Mai sentito parlare di ereg(i)?

    Codice PHP:
    if(ereg($logo, $file, $risultato)) {
    print_r($risultato);
    }

  9. #9
    Guest

    Predefinito

    Ok XD ma mi sto perdendo...! O.o
    Codice PHP:
    $file = file_get_contents("google.txt"); $file = htmlspecialchars($file);
    $logo = "intl/it_it/images/(.+)";

    if(
    eregi($logo, $file, $risultato)) {
    $logo = $risultato;
    } else {
    $logo = "http://www.google.it/intl/it_it/images/logo.gif";
    }
    print_r($logo);
    In pratica si, con $logo["0"] mostra tutto dopo l'img ma io voglio prendere solo l'url! XD
    Come faccio? XD Mi sto perdendo! O_O

    PS. Mi mostra con print_r:
    Array ( [0] => intl/it_it/images/logo.gif" width=276 id=logo onload="window.lol&&lol()"><br><br><form action="/search" name=f><table cellpadding=0 cellspacing=0><tr valign=top><td width=25%>&nbsp;</td><td align=center nowrap><input name=hl type=hidden value=it><input type=hidden name=ie value="ISO-8859-1"><input autocomplete="off" maxlength=2048 name=q size=55 title="Cerca con Google" value=""><br><input name=btnG type=submit value="Cerca con Google"><input name=btnI type=submit value="Mi sento fortunato"></td><td nowrap width=25% align=left><font size=-2>&nbsp;&nbsp;<a href=/advanced_search?hl=it>Ricerca avanzata</a><br>&nbsp;&nbsp;<a href=/preferences?hl=it>Preferenze</a><br>&nbsp;&nbsp;<a href=/language_tools?hl=it>Strumenti per le lingue</a></font></td></tr><tr><td align=center colspan=3><font size=-1><span style="text-align:left">Cerca: <input id=all type=radio name=meta value="" checked><label for=all> nel Web </label> <input id=lgr type=radio name=meta value="lr=lang_it"><label for=lgr> pagine in Italiano </label> <input id=cty type=radio name=meta value="cr=countryIT"><label for=cty> pagine provenienti da: Italia </label> </span></font></td></tr></table></form><br><br><font size=-1><a href="/intl/it/ads/">Pubblicità</a> - <a href="/services/">Soluzioni Aziendali</a> - <a href="/intl/it/about.html">Tutto su Google</a> - <a href=http://www.google.com/ncr>Google.com in English</a></font><p><font size=-2>&copy;2009 - <a href="/intl/it/privacy.html">Privacy</a></font></p></center><div id=xjsd></div><div id=xjsi><script>if(google.y)google.y.first=[];if(google.y)google.y.first=[];google.dstr=[];google.rein=[];window.setTimeout(function(){var a=document.createElement("script");a.src="/extern_js/f/CgJpdBICaXQgACswCjgbLCswDjgFLCswGDgELCswJTjJiAEsKz AmOAQsKzAnOAAs/4_w0jVG1COY.js";(document.getElementById("xjsd")|| document.body).appendChild(a)},0); ;google.y.first.push(function(){google.ac.i(docume nt.f,document.f.q,'','')});google.xjs&&google.j&&g oogle.j.xi&&google.j.xi()</script></div><script>(function(){ function a(){google.timers.load.t.ol=(new Date).getTime();google.report&&google.report(googl e.timers.load,{ei:google.kEI,e:google.kCSIE})}if(w indow.addEventListener)window.addEventListener("lo ad",a,false);else if(window.attachEvent)window.attachEvent("onload", a);google.timers.load.t.prt=(new Date).getTime(); })(); </script> [1] => logo.gif" width=276 id=logo onload="window.lol&&lol()"><br><br><form action="/search" name=f><table cellpadding=0 cellspacing=0><tr valign=top><td width=25%>&nbsp;</td><td align=center nowrap><input name=hl type=hidden value=it><input type=hidden name=ie value="ISO-8859-1"><input autocomplete="off" maxlength=2048 name=q size=55 title="Cerca con Google" value=""><br><input name=btnG type=submit value="Cerca con Google"><input name=btnI type=submit value="Mi sento fortunato"></td><td nowrap width=25% align=left><font size=-2>&nbsp;&nbsp;<a href=/advanced_search?hl=it>Ricerca avanzata</a><br>&nbsp;&nbsp;<a href=/preferences?hl=it>Preferenze</a><br>&nbsp;&nbsp;<a href=/language_tools?hl=it>Strumenti per le lingue</a></font></td></tr><tr><td align=center colspan=3><font size=-1><span style="text-align:left">Cerca: <input id=all type=radio name=meta value="" checked><label for=all> nel Web </label> <input id=lgr type=radio name=meta value="lr=lang_it"><label for=lgr> pagine in Italiano </label> <input id=cty type=radio name=meta value="cr=countryIT"><label for=cty> pagine provenienti da: Italia </label> </span></font></td></tr></table></form><br><br><font size=-1><a href="/intl/it/ads/">Pubblicità</a> - <a href="/services/">Soluzioni Aziendali</a> - <a href="/intl/it/about.html">Tutto su Google</a> - <a href=http://www.google.com/ncr>Google.com in English</a></font><p><font size=-2>&copy;2009 - <a href="/intl/it/privacy.html">Privacy</a></font></p></center><div id=xjsd></div><div id=xjsi><script>if(google.y)google.y.first=[];if(google.y)google.y.first=[];google.dstr=[];google.rein=[];window.setTimeout(function(){var a=document.createElement("script");a.src="/extern_js/f/CgJpdBICaXQgACswCjgbLCswDjgFLCswGDgELCswJTjJiAEsKz AmOAQsKzAnOAAs/4_w0jVG1COY.js";(document.getElementById("xjsd")|| document.body).appendChild(a)},0); ;google.y.first.push(function(){google.ac.i(docume nt.f,document.f.q,'','')});google.xjs&&google.j&&g oogle.j.xi&&google.j.xi()</script></div><script>(function(){ function a(){google.timers.load.t.ol=(new Date).getTime();google.report&&google.report(googl e.timers.load,{ei:google.kEI,e:google.kCSIE})}if(w indow.addEventListener)window.addEventListener("lo ad",a,false);else if(window.attachEvent)window.attachEvent("onload", a);google.timers.load.t.prt=(new Date).getTime(); })(); </script> )
    Ultima modifica di sIM : 22-06-2009 alle ore 12.51.28

  10. #10
    Guest

    Predefinito

    sIM, usa le regex.
    Codice PHP:
    <?php
    $a
    = file_get_contents("http://google.it/index.html");
    preg_match("/<img\s(.+)\ssrc=\"(.+)\"/",$a,$m);
    $e = explode("\"",$m[2]);
    print
    $e[0];
    ?>
    Non mi è riuscito di trovare la regex giusta, ma funzia comunque

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •