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

    Espressioni regolari - Sostituire * con <li>

    Ciao a tutti,

    mi dareste una mano per favore? Non sono bravo con le reg exp.

    Ho una string di questo tipo

    * prima riga
    * seconda riga
    * terza riga
    * quarta riga

    Vorrei farla diventare[*]prima riga[*]seconda riga[*]terza riga[*]quarta riga

    Grazie per l'attenzione.
    Olio Extravergine d'Oliva Magino
    Prodotti tipici: in vendita olio, pesto ligure e altri prodotti alimentari tradizionali.

  2. #2
    uppete
    Olio Extravergine d'Oliva Magino
    Prodotti tipici: in vendita olio, pesto ligure e altri prodotti alimentari tradizionali.

  3. #3
    Diventa più facile se sostituisci[*] a *
    [*]prima riga[*]seconda riga[*]terza riga[*]quarta riga

    e poi togli il primo e lo aggiungi alla fine.
    Lo puoi fare con qualsiasi editor (notepad, notepad++)
    senza scomodare le regexp.

  4. #4
    E' una stringa unica???
    PHP LEARN - Guide, tutorial e articoli sempre aggiornati
    NUOVO: standardLib; il potente framework PHP é ora disponibile
    *******************************************
    Scarica oggi la tua copia di MtxEventManager

  5. #5
    perché se é un unica stringa la puoi explodere con * come separatore e poi sviluppi l'array all'interno dei tag[*]
    PHP LEARN - Guide, tutorial e articoli sempre aggiornati
    NUOVO: standardLib; il potente framework PHP é ora disponibile
    *******************************************
    Scarica oggi la tua copia di MtxEventManager

  6. #6
    VVoVe: Cioè???
    Lo puoi fare con qualsiasi editor (notepad, notepad++) senza scomodare le regexp.
    daweb ha parlato di RegExp, per cui gli interessa farlo fare a PHP.
    Credo proprio che sappia tranquillamente sostituire a mano dei caratteri con altri in un editor di testo!

    Comunque..... il metodo descritto da ennekappa tutto sommato lo puoi usare anche senza usare le espressioni regolari.

    Codice PHP:
    // 1. recuperi la stringa dal post della form o dal DB
    $stringa $_POST['stringa'];
    // 2. sostituisci i caratteri di a-capo e asterisco 
    $stringa str_replace("\\r\\n*""[*]"$stringa);
    // 3. sostituisci il primo asterisco con un marcatore di lista
    $stringa str_replace("*""[*]"$stringa);
    // 4. aggiungi la chiusura
    $stringa $stringa.""
    Ora è da capire se la lista è all'inizio della stringa oppure no.
    Se prima del primo asterisco c'è un altro a-capo, allora la stringa inizierebbe con un per cui poi dovresti toglierlo (con substr() oppure con un altri str_replace).

    Risolveresti meglio se utilizzassi due caratteri diversi per indicare INIZIO e FINE dell'elemento della lista.
    Lì con 2 str_replace risolveresti subito.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  7. #7
    Ovviamente non intendevo A MANO ma utilizzando un comando "sostituisci" presente in tutti gli editor perchè non avevo capito che lo volesse fare dinamicamente da PHP.

  8. #8
    VVoVe: VVoVe: VVoVe:
    PHP LEARN - Guide, tutorial e articoli sempre aggiornati
    NUOVO: standardLib; il potente framework PHP é ora disponibile
    *******************************************
    Scarica oggi la tua copia di MtxEventManager

  9. #9
    Alcio, non ti contraddirei mai, lo sai. Ma fare così:

    Codice PHP:
    $str explode("*"$stringa);

    for(
    $i 0$i count($str); $i++)
    {
    echo 
    "[*]" $str[$i] . "\r\n";

    PHP LEARN - Guide, tutorial e articoli sempre aggiornati
    NUOVO: standardLib; il potente framework PHP é ora disponibile
    *******************************************
    Scarica oggi la tua copia di MtxEventManager

  10. #10
    @ennekappa
    Ovviamente non intendevo A MANO ma utilizzando un comando "sostituisci" presente in tutti gli editor perchè non avevo capito che lo volesse fare dinamicamente da PHP.
    Beh..... che si usi CTRL+H o puntando il cursore, sempre a mano è fatto.
    Il fatto che poi si parlasse di espressioni regolari in un forum di PHP, penso sottoindendesse che la domanda fosse per uno script dinamico?

    @mtx_maurizio
    Alcio, non ti contraddirei mai, lo sai. Ma fare così:
    Beh.... ho scritto il mio post mentre tu postavi il tuo, per cui mi ero fissato con il replace e non ho neanche pensato all'explode! Devo ammettere che la tua soluzione è nettamente migliore della mia!
    Puoi contraddirmi ogni volta che lo ritieni necessario..... basta che non ci prendi gusto!

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

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.