Visualizzazione risultati 1 fino 9 di 9

Discussione: estrarre parte di una stringa

  1. #1
    Guest

    Predefinito estrarre parte di una stringa

    Come faccio a prelevare da una stringa la porzione di testo che ad esempio è racchiusa nel tag [ QUOTE][ /QUOTE] ?!?

    Grazie
    Ultima modifica di newrim : 12-07-2009 alle ore 15.29.37

  2. #2
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,269

    Predefinito

    un metodo e' con le espressioni regolari.

  3. #3
    Guest

    Predefinito

    Mi potresti fare un esempio per il mio caso?

  4. #4
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,269

    Predefinito

    Aka "potresti darmi la soluzione, che non ho voglia di leggere l'articolo?"

    No, perche' non hai mai spiegato quale sia il tuo caso.

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    Aka "potresti darmi la soluzione, che non ho voglia di leggere l'articolo?"

    No, perche' non hai mai spiegato quale sia il tuo caso.
    Beh, se chiedo il tuo aiuto è perchè non sono un programmatore esperto, e anche avendo letto l'articolo non ho capito come risolvere il mio problema.

    Infatti, io ho un testo racchiuso in questa variabile $MSG_BACH. Ora, se in questo testo sono contenuti i tag [ QUOTE] o [ /QUOTE] (oppure [ B] [ /B]) devo poter estrarre il contenuto racchiuso tra questi tag in modo da poterlo formattare, ecc..

    Come posso fare?

  6. #6
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,248

    Predefinito

    Scusa, non ti conviene eliminare il [ QUOTE] e il [ /QUOTE] ??

    Ad esempio:

    Codice PHP:
    $MSG_BACH = str_replace("[ QUOTE]","",$MSG_BACH);
    $MSG_BACH = str_replace("[ /QUOTE]","",$MSG_BACH);
    Ciao!

    EDIT:

    addirittura, ho capito che vuoi formattarlo, quindi lo puoi fare direttamente da qui:

    Codice HTML:
    <style type='text/css'>
    <!--
    #quote
    {
       //varie impostazioni...
    }
    -->
    </style>
    Codice PHP:
    $MSG_BACH = str_replace("[ QUOTE]","<span class='quote'>",$MSG_BACH);
    $MSG_BACH = str_replace("[ /QUOTE]","</span>",$MSG_BACH);
    Ultima modifica di alemoppo : 12-07-2009 alle ore 15.41.16

  7. #7
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,269

    Predefinito

    se devi lavorare con bbcode, espressioni regolari sono la via corretta, ma trovi in giro spezzoni di codice gia' pronti, con molti dei tag usati di solito. Di meglio, rispetto alla soluzione proposta da alemoppo, c'e' che le regexp controllano anche che la sintassi del bbcode sia corretta - e.g. [ quote][ quote] non viene convertito, mentre la versione sopra aprirebbe due <span> (perche' non <blockquote>?) senza mai chiuderli.

    Il php ha persino una serie di funzioni predefinite per il bbcode, che pero' non sono sicuro siano presenti su AlterVista. Provale, se non dovessero funzionare, ci sono buone spiegazioni scriverne di simili.

  8. #8
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Scusa, non ti conviene eliminare il [ QUOTE] e il [ /QUOTE] ??

    Ad esempio:

    Codice PHP:
    $MSG_BACH = str_replace("[ QUOTE]","",$MSG_BACH);
    $MSG_BACH = str_replace("[ /QUOTE]","",$MSG_BACH);
    Ciao!

    EDIT:

    addirittura, ho capito che vuoi formattarlo, quindi lo puoi fare direttamente da qui:

    Codice HTML:
    <style type='text/css'>
    <!--
    #quote
    {
       //varie impostazioni...
    }
    -->
    </style>
    Codice PHP:
    $MSG_BACH = str_replace("[ QUOTE]","<span class='quote'>",$MSG_BACH);
    $MSG_BACH = str_replace("[ /QUOTE]","</span>",$MSG_BACH);
    Ho fatto come mi hai suggerito^^..

  9. #9
    Guest

    Predefinito

    Tutto quello detto da dreadnaut non ti ha detto niente???

    E pappa pronta sia :
    Codice PHP:
    $MSG_BACH = preg_replace("/\[QUOTE\](.*?)\[\/QUOTE\]/", "<span class=\"quote\">\\1</span>", $MSG_BACH);

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •