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

    Trovare stringe tra tags

    Ciao, ho visto che molti motori di indicizzazione scritti in PHP riescono a trovare informazioni all'interno dei TAGS. Ho bisogno di fare una cosa del genere, ma molto molto meno complessa.

    Ho dei file HTML e vorrei visualizzare il contenuto dei tag <hx>.

    Potrei farlo anche con la bash di linux, tipo

    cat file.html | grep -e '<h[1-6]'

    il problema e' che non posso visualizzare il contenuto di una stringa di questo tipo:

    codice:
    <h3>
    Testo che mi serve
    </h3>
    Come faccio a farlo con PHP?
    Are you alive?
    No, but I was written with LOVE. A new scripting language.
    www.frequenze.it

  2. #2
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    così dovrebbe funzionare:

    codice:
    $pattern="/(\<h)(\d){1}(\>)(.+)(\<\/h)(\d){1}(\>)/i";
    $replace="$4";
    $stringa="<h1>ciao</h1>";
    echo preg_replace($pattern,$replace,$stringa);
    think simple think ringo

  3. #3
    uhm... no

    Prende e stampa tutta la stringa. Mi e' chiara la regex, ma non il

    $replace="$4";

    e

    echo preg_replace($pattern,$replace,$stringa);

    a che servono?
    Are you alive?
    No, but I was written with LOVE. A new scripting language.
    www.frequenze.it

  4. #4
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    il forum ha inserito degli spazi nell'espressione regolare, che non devono esserci

    $4 è la quarta parte del riconoscimento, ovvero (.+).
    think simple think ringo

  5. #5
    Ho tolto gli spazi e provato a giocare con ereg e ereg_replace, ma niente, prende sempre tutta la strina!!
    Are you alive?
    No, but I was written with LOVE. A new scripting language.
    www.frequenze.it

  6. #6
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    Originariamente inviato da Mutato
    Ho tolto gli spazi e provato a giocare con ereg e ereg_replace, ma niente, prende sempre tutta la strina!!
    l'esempio che ti ho postato funziona correttamente :master:
    think simple think ringo

  7. #7
    Ho modificato cosi', per capire cosa ne e' del resto della pagina

    codice:
    $pattern="/(\<h)(\d){1}(\> )(.+)(\<\/h)(\d){1}(\> )/i";
    $replace="$4";
    $stringa="
    
    hello</p><h1>ciao</h1>
    
    aloa</p>";
    echo  preg_replace($pattern,$replace,$stringa);
    A me restituisce:

    hello</p>ciao

    aloa</p>, ovvero strippa i tag hx, ok, ma non isola il contenuto dal contesto... avrei bisogno che mi restituisse: ciao.

    Are you alive?
    No, but I was written with LOVE. A new scripting language.
    www.frequenze.it

  8. #8
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    codice:
    $pattern="/(.+)(\<h)(\d){1}(\>)(.+)(\<\/h)(\d){1}(\>)(.+)/i";
    $replace="$5";
    $stringa="
    
    hello</p><h1>ciao</h1>
    
    aloa</p>";
    echo   preg_replace($pattern,$replace,$stringa);
    sempre senza spazi...
    think simple think ringo

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.