Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1

    QUOTE ed espressioni regolari

    non sono molto pratico di espressioni regolari e desideravo sapere se qualcuno di voi qui dentro aveva già implementato qualche espressione regolare in grado di realizzare la classica funzione di quote che utilizzano i vari forum.

    in pratica il mio quote dovrebbe funzionare più o meno così:

    codice:
    
    
    Quote Originariamente inviata da nickname, venerdì 14 gennaio 2005, 19.16
    CONTENUTO MESSAGGIO DA QUOTARE
    CONTENUTO NUOVO MESSAGGIO.
    dovrei recuperare il nickname, la data e i due contenuti dei messaggi. qualcuno può aiutarmi? potrebbe essere una funzione utile a molti.

  2. #2
    up

  3. #3
    prova con questa espressione, e ti ritroverai nell'array $arr cio' che ti interessa. Poi dovra' essere rielaborato. E' comunque un punto di partenza.
    codice:
    <? 
    $r="#^(\[quote\=){1}(.*)\].*([\/quote]){1}.*$#";
    $stringa="
    
    Quote Originariamente inviata da nickname, venerdì 14 gennaio 2005, 19.16
    CONTENUTO MESSAGGIO DA QUOTARE
    CONTENUTO NUOVO MESSAGGIO. "; $arr=array(); $p=preg_match_all($r,$stringa,$arr); echo "<pre>".var_dump($arr)."</pre>"; ?>
    ______________________________________

    Progresso Web.

  4. #4
    grazie mille, caruccis.
    c'è comunque qualcosa che non va nello script perchè mi viene fuori questo:

    codice:
    array(4) { [0]=> array(1) { [0]=> string(113) "
    
    Quote Originariamente inviata da nickname, venerdì 14 gennaio 2005, 19.16
    CONTENUTO MESSAGGIO DA QUOTARE
    CONTENUTO NUOVO MESSAGGIO." } [1]=> array(1) { [0]=> string(7) "[quote=" } [2]=> array(1) { [0]=> string(40) "nickname, venerdì 14 gennaio 2005, 19.16" } [3]=> array(1) { [0]=> string(1) "e" } }
    manca "CONTENUTO MESSAGGIO DA QUOTARE" e "CONTENUTO NUOVO MESSAGGIO" nell'array finale.

  5. #5
    up

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    434
    prova così, la struttura del quote sarà:

    [quote name="nome" date="Venerdì 17 maggio 200"]
    messaggio da quotare
    [/quote]
    altro testo

    codice:
    $testo = preg_replace("/^\[quote name=\"(.*?)\" date=\"(.*)\"\](.*?)\[\/quote\]$/i", "Originariamente inviato da \\1 il \\2:<hr>\\3<hr>", $testo);

  7. #7
    ciao billo. intanto grazie per l'aiuto.

    ho provato con questo codice come tu hai consigliato:
    codice:
    $testo = "[quote name=\"nome\" date=\"Venerdì 17 maggio 200\"]messaggio da quotare[/quote]altro testo";
    $testo = preg_replace("/^\[quote name=\"(.*?)\" date=\"(.*)\"\](.*?)\[\/quote\]$/i", "Originariamente inviato da \\1 il \\2:<hr>\\3<hr>", $testo);
    echo $testo;
    ma ottengo questo risultato:
    codice:
    [quote name="nome" date="Venerdì 17 maggio 200"]messaggio da quotare[/quote]altro testo
    come se l'espressione regolare non lavorasse proprio.

  8. #8
    intanto vi consiglio di scaricare dalla rete il seguente programma che aiuta molto con le espressioni regolari:

    The Regex Coach

    ______________________________________

    Progresso Web.

  9. #9
    Prova con questa:
    codice:
    $stringa='....
    
    Quote Originariamente inviata da "nickname", venerdì 14 gennaio 2005, 19.16
    CONTENUTO MESSAGGIO DA QUOTARE
    CONTENUTO NUOVO MESSAGGIO..... '; $rex='/\[quote="(.*)",(.*),(.*)\](.*)\[\/quote\]/Uis'; $rpl=' Originariamente inviato da $1 il $2:<hr>$3<hr>$4 '; echo $testo = preg_replace($rex, $rpl, $stringa);
    dA .. foto di viaggio
    L'esperienza è il tipo di insegnante più difficile.
    Prima ti fa l'esame, e poi ti spiega la lezione.

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    434
    codice:
    $testo = preg_replace("/^(.*?)\[quote name=\"(.*?)\" date=\"(.*)\"\](.*?)\[\/quote\](.*?)$/i", "\\1<hr>Originariamente inviato da \\2 il \\3:
    \\4<hr>\\5", $testo);
    scusa, riprova ora.
    [edit]: provato e funziona

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.