Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    parsare XHTML e ottenere stringa in un tag con ID

    ho una pagina .php che tramite uno script genera codice XHTML valido del tipo:

    Codice PHP:
    if($condizione==true) {
        echo 
    '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
    <head>...</head>
    <body>
    <div id="miservequesto">
    .... .... ....
    </div>
    </body>
    </html>'
    ;
    } else {
        echo 
    '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
    <head>...</head>
    <body>
    <div id="miservequesto">
    .... .... ....
    </div>
    </body>
    </html>'
    ;

    in PHP è possibile reperire la stringa o dati presenti all'interno del div con id "miservequesto" ???
    Ovviamente intendo da un file esterno, cioè tipo parser.php deve leggere il contenuto del div "miservequesto" che si trova in xhtml.php, è possibile?
    Praticamente far leggere la pagina non come script PHP ma come pagina statica, come se il file parser.php fosse una sorta di crawler come quello dei motori di ricerca...


    so che entrano in ballo le funzioni php DOM ma non le ho mai usate.

    grazie
    Per una battaglia sono sempre a disposizione

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Molto elementare ma dovrebbe andare:

    codice:
    $handle = fopen("http://www.example.com/", "rb");
    $contents = '';
    while (!feof($handle)) {
      $contents .= fread($handle, 8192);
    }
    fclose($handle);
    
    preg_match_all('/<div id="miservequesto">([^\>]+)</div>/', $contents, $risultato);
    
    echo "<pre>";
    echo htmlentities($risultato[1][0]);
    echo "</pre>";

  3. #3
    cioè posso usare fopen??? VVoVe:

    pensavo leggesse il codice completo del file php..non del risultato...
    fantastico!
    grazie mille!!

    Per una battaglia sono sempre a disposizione

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    209
    scusate se riprendo questo argomento....
    ho provato ad usare questo pezzo di codice :

    Codice PHP:
    <?
    $handle 
    fopen("http://www.cremavolley.it/""rb");
    $contents '';
    while (!
    feof($handle)) {
      
    $contents .= fread($handle8192);
    }
    fclose($handle);

    preg_match_all('/<div id="spazio-banner">([^\>]+)</div>/'$contents$risultato);

    echo 
    "<pre>";
    echo 
    htmlentities($risultato[1][0]);
    echo 
    "</pre>";
    ?>
    ma quando lo faccio partire il server mi restituisce la seguente scritta:

    Warning: preg_match_all() [function.preg-match-all]: Unknown modifier 'd' in /htbudget.php on line 9
    Cosa vuol dire?io non vedo nessuna 'd' nella riga...

  5. #5
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    non so se è un errore dovuto all'interpretazione del forum, ma l'errore sembra dovuto al fatto che non fai l'escape dello slash di chiusura del div:

    codice:
    '/<div id="spazio-banner">([^\>]+)<\/div>/

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    209
    Non mi da l'errore pero' mi da una pagina comletamente bianca... e sì che nella pagina in questione esiste quella riga che è :


    Codice PHP:
    <div id="spazio-banner">
    <
    div id="contenitore-banner">
    <
    div id="banner-top-big">[url="http://localhost/#"][img]../img/468-X-60-2.gif[/img][/url]</div>
    <
    div id="albodoro">[url="../albo.php"][img]../img/bot-albo.gif[/img][/url]</div>    </div>
        <
    div id="contenitore-link">
            [
    url="http://www.studiomartignoni.com"][img]../img/sc-martignoni.gif[/img][/url
        </
    div>
        </
    div
    in teoria non dovrebbe stamparmi a video tutto cio'?

  7. #7
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    mi sa che ci vuole una regex diversa, perchè all'interno del div hai altri div, e non un contenuto testuale.

    Ad essere sincero adesso non ho sottomano una regex per questo, prova a guardare su regexlib.com, forse trovi qualcosa che fa al tuo caso.

    ciao

  8. #8
    1-fantastico il sito sulle regexp...non lo conoscevo!!!


    Per una battaglia sono sempre a disposizione

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.