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

    Leggere stringa tra due tag in un file di testo

    salve ragazzi,
    ieri sera ho trovato uno script per leggere un file di testo fatto in una classe a oggetti.
    Lo script legge tutto il file, ma il mio problema adesso è che vorrei estrarre da questo file esclusivamente un testo che si trova ad esempio tra i tag <h1></h1>.

    questo è il mio codice di partenza:
    Codice PHP:
    class LeggiFile
        
    {
            private 
    $resource;
            private 
    $fname;
            function 
    LeggiFile($nome)
            {
                
    $this->fname $nome;
                
    $this->resource fopen($nome'r');
            }
            public function 
    getContent()
            {
                return 
    fread($this->resourcefilesize($this->fname));
            }
            public function 
    close()
            {
                
    fclose($this->resource);
            }
        } 
    Qualcuno mi può aiutare?
    Hutton

    "Una tela bianca, offre infinite possibilità."

  2. #2
    Non so come ci si comporta con le classi, ma in PHP, per leggere la stringa compresa nel tag <title>.........</title> io uso fare in questo modo:
    Codice PHP:
    $html = @file_get_contents($file);
    if(
    eregi("<title>(.*)</title>",$html,$title)) {
        
    $page_title $title[1];

    $file è il nome completo del file da leggere
    $html contiene il contenuto del file appena letto
    con eregi(...............) leggo la stringa compresa nel tag <title>.........</title>
    la stringa letta la trovo in $title[1]

  3. #3
    mi dice che la funzione eregi è deprecata...
    Hutton

    "Una tela bianca, offre infinite possibilità."

  4. #4
    Ciao hutton
    non so se è a causa della classe che usi, ma a me in puro PHP, anche se deprecata, funziona e se nel mio <title>....</title> c'è qualcosa, me lo restituisce.
    Puoi provare con preg_match come alternativa al eregi http://www.php.net/manual/en/function.preg-match.php
    Io però non l'ho ancora usato, quindi non so se e come funziona.
    Se funziona come l'altro, come $pattern puoi usare "<title>(.*)</title>" o altro tag che preferisci.


  5. #5
    Ho risolto con il preg_match(); perchè l'altra mi dava errore php.

    Cmq grazie!
    Hutton

    "Una tela bianca, offre infinite possibilità."

  6. #6
    Piacere che abbia risolto

  7. #7
    Domanda.....

    ma se io avessi nello stesso file di testo più tag

    , come posso fare per visualizzarli tutti ?
    Io sto facendo delle prove ma legge solo il primo, e se faccio un ciclo, mi visualizza più volte lo stesso....
    Hutton

    "Una tela bianca, offre infinite possibilità."

  8. #8
    Ciao hutton
    questo purtroppo non lo so. Spero che arrivi qualcuno più esperto di me

  9. #9
    ciao hutton
    siccome non mi piace lasciare questioni sospese ho trovato e fatto una prova veloce ma positiva con questo:
    Codice PHP:
    $testo "Questo è solo un piccolo esempio di
    <tag>Espressioni Regolari</tag> per un <tag>Programmatore PHP</tag>.
    <tag>questa è una terza stringa</tag>"
    ;
    preg_match_all("(<tag>(.*?)</tag>)"$testo $risultato );
    echo 
    "<pre>\n";
    var_dump ($risultato);
    echo 
    "</pre>\n";
    echo 
    $risultato[1][0] . "
    \n"
    ;
    echo 
    $risultato[1][1] . "
    \n"
    ;
    echo 
    $risultato[1][2] . "
    \n"

    Riesco ad estrarre stringhe da tutti i tag <tag>...........</tag>
    Mi sembra che faccia al caso tuo. Personalmente in questo periodo non ho modo di testarlo, ma spero possa esserti utile.

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.