Visualizzazione dei risultati da 1 a 5 su 5

Discussione: espressioni regolari

  1. #1

    espressioni regolari

    perchè se ho un testo come questo:

    codice:
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Untitled Document</title>
    </head>
    <body>
    <table width="915" border="0" cellpadding="0">
    <tr>
    <td width="231" rowspan="3" bgcolor="#9900FF"> <div align="center"><php>menu</php></div></td>
    <td width="678" bgcolor="#9900FF"><div align="center"><php>news</php></div></td>
    </tr>
    <tr>
    <td bgcolor="#9900FF"><php>header</php></td>
    </tr><tr><td bgcolor="#9900FF"><php>header</php></td>
    </tr>
    </table>
    </body>
    </html>
    e gli dico di cercare dentro a questo testo la seguente espressione regolare:
    codice:
    ereg ("<php>(.+)</php>", $source, $corr)
    mi restituisce
    codice:
    menu</php></div></td>
    <td width="678" bgcolor="#9900FF"><div align="center"><php>news</php></div></td>
    </tr>
    <tr>
    <td bgcolor="#9900FF"><php>header</php></td>
    </tr><tr><td bgcolor="#9900FF"><php>header
    e non
    codice:
    menu
    ??

    il risultato che mirestituisce è dal primo <php> della pagina all'ultimo </php>, ignorando quelli che ci stanno in mezzo!
    la mi intenzione sarebbe di avere nell'array $corr l'elenco delle corrispondenze trovate tra <php> e </php>...

    ciao

    Silent Engine

    <?="hello world"?>

  2. #2
    Utente di HTML.it L'avatar di Emyl
    Registrato dal
    Jul 2004
    Messaggi
    250
    Prova a cambiare la sintassi tra parentesi con .+?

    Non conosco per niente ereg(), ma se si comporta come preg() per default ha un comportamento "greedy", ovvero tende a raccogliere piu' testo possibile.

    "Ci sono 10 tipi di persone, quelli che capiscono i numeri binari...
    e quelli che non li capiscono."

  3. #3
    putroppo sostituendo con .+? mi da addirittura errore...
    codice:
    Warning: ereg(): REG_BADRPT

    Silent Engine

    <?="hello world"?>

  4. #4
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    codice:
    //$stringa è la variabile che contiene il testo da riconoscere
    preg_match_all( "#(.*)\<php\>(.*)\</php\>(.*)#U", $stringa, $ris );
    print_r( $ris[2] );



    think simple think ringo

  5. #5

    funzia perfettamente

    ora mi rode un po meno di lavorare in un giorno festivo. grazie!

    Silent Engine

    <?="hello world"?>

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.