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

    Pulire una stringa con php

    Ciao a tutti,
    premetto che mi sembrava un'operazione piuttosto semplice, invece mi sta dando qualche problema.

    Devo pulire il testo inserito in una <textarea> e limitare la lunghezza dei caratteri. Questo testo verrà poi conservato nel db e dovrà essere visualizzato come testo "semplice" in una pagina.

    Per pulire la stringa ho utilizzato le funzioni predefinite di php:
    - trim() per gli spazi a destra e a sinistra della stringa
    - strip_tags() per eliminare i tag html
    - infine nl2br() per fare in modo che i ritorni a capo diventino tag


    Ora, il problema principale è la lunghezza della stringa !
    Se tra una parola ed un'altra ci sono 100 spazi vuoti e/o 1000 ritorni a capo, questi ovviamente vengono contati, quindi la stringa finale della textarea risulta essere oltre 1000 caratteri, ma in realtà con sole 2 parole appena!

    Sapete consigliarmi come evitare questo problema?
    Io vorrei fare in modo di eliminare gli spazi consecutivi ed i ritorni a capo consecutivi, qualcuno di voi ha una soluzione??

    Grazie anticipatamente!

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Per gli spazi multipli puoi usare una funzione fatta così
    Codice PHP:
    function fix_multi_spaces($string)
    {
        
    $reg_exp '/\s+/';
        return 
    preg_replace($reg_exp," ",$string);

    che ti ritorna la stringa passata, ma dove c'erano spazi multipli, ora ce n'è uno solo.

    Per i ritorni a capo, o tutto ciò che vuoi, puoi fare la stessa cosa, basta adattare la regexp

  3. #3
    grazie mille! il tuo esempio è stato chiarissimo.

    Le espressioni regolari sono molto utili in questi contesti!!

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.