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

    Rimuovere ritorni a capo in eccesso

    Ciao a tutti,

    ho bisogno di rimuovere i ritorni a capo in eccesso presenti in un testo.
    Per esempio il testo:
    ciao



    ciao



    ciao
    contiene 3 ritorni a capo fra le parole, i quali sono inutili, ne basterebbe uno solo (o al massimo 2 per staccare i paragrafi), vorrei capire come poter ottenere dal testo iniziale un risultato con un solo ritorno a capo fra le parole. es:
    codice:
    ciao
    ciao
    ciao
    Ho provato con str_replace ma elimina "tutti" i ritorno a capo, mentre invece vorrei manterne almeno uno (quello dato dall'utente per la fine del paragrafo o frase).

    Come posso fare?
    Perpetual Ribellion With Absolutely No Cause

  2. #2
    Ok ho trovato il modo per mantenerne uno solo proprio come chiedevo, ma se volessi mantenerne 2?

    Con questo codice ne mantengo uno.
    codice:
    preg_replace('/[ \t]+/', ' ', preg_replace('/[\r\n]+/', "\n", $descrizione));
    Per es :
    testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo



    testo testo testo testo testo testo testo testo testo
    mantenendone 2 mi ritroverei :
    testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo

    testo testo testo testo testo testo testo testo testo
    Si può fare? In questo modo si manterebbe una formattazione ideale.
    Perpetual Ribellion With Absolutely No Cause

  3. #3
    Se hai capito come funziona preg_replace() non vedo che difficoltà ci sia nel modificare il codice da "te" appena scritto.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  4. #4
    Già.. ma aggiungendo {2,} alla regex ottengo lo stesso risultato.
    codice:
    preg_replace('/[ \t]+/', ' ', preg_replace('/[\r\n]{2,}+/', "\n", $descrizione));
    Non sono praticissimo di regex, magari sbaglio qualcosa io..
    Perpetual Ribellion With Absolutely No Cause

  5. #5
    Ok penso di aver risolto.. non ho calcolato l'utilizzo due \n per la sostituzione.

    codice:
    preg_replace('/[ \t]+/', ' ', preg_replace('/[\r\n]{3,}+/', "\n\n", $descrizione));
    Ora funziona, spero possa essere utile a qualcuno in futuro.

    Ciao
    Perpetual Ribellion With Absolutely No Cause

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.