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

Discussione: str_replace

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    855

    str_replace

    Salve, devo formattare un testo, riducendo tutti gli spazi e gli a capo ad uno solo...
    Come fare?

  2. #2
    Utente di HTML.it L'avatar di span
    Registrato dal
    Jan 2004
    Messaggi
    1,644
    forse con un preg_replace

    l'espressione regolare potrebe essere così:

    Codice PHP:
    "#([\n\r\t\\s]?)[\n\r\t\\s]+#" 

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    855

    ciao regex che non va bene...

    Ciao, non va...ma una cosa del tipo perchè non va?
    $var= preg_replace("[[:space:]]+", " ", "$var");
    mi dice unknow + .........

    P.S. dovrebbe ridurre tutti gli spazi e gli a capo a uno solo...

  4. #4
    Utente bannato L'avatar di Braco
    Registrato dal
    Oct 2005
    Messaggi
    1,697

    Re: ciao regex che non va bene...

    Originariamente inviato da gio-mx
    Ciao, non va...ma una cosa del tipo perchè non va?
    $var= preg_replace("[[:space:]]+", " ", "$var");
    mi dice unknow + .........

    P.S. dovrebbe ridurre tutti gli spazi e gli a capo a uno solo...
    Prova questo
    $messaggio = str_replace(array("\n","\r"),'',$messaggio);

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    855

    ancora no...

    Ciao, grazie...dunque:
    Gli a capo me li leva tutti...come si fa a lascirane uno?
    mentre gli spazi non va...

  6. #6
    Utente bannato L'avatar di Braco
    Registrato dal
    Oct 2005
    Messaggi
    1,697

    Re: ancora no...

    Originariamente inviato da gio-mx
    Ciao, grazie...dunque:
    Gli a capo me li leva tutti...come si fa a lascirane uno?
    mentre gli spazi non va...
    Purtroppo non conosco un modo e credo non esista quello di lasciare un a capo, o gli lasci tutti o li tiri via tutti.
    Per gli spazi puoi usare trim

    es

    $messaggio = trim($_POST['messaggio']);

  7. #7
    Utente di HTML.it L'avatar di span
    Registrato dal
    Jan 2004
    Messaggi
    1,644

    Re: ciao regex che non va bene...

    Originariamente inviato da gio-mx
    Ciao, non va...ma una cosa del tipo perchè non va?
    $var= preg_replace("[[:space:]]+", " ", "$var");
    mi dice unknow + .........

    P.S. dovrebbe ridurre tutti gli spazi e gli a capo a uno solo...
    1) mancano i delimitatori nell'espressione... in quella che avevo postato io i delimitatori erano gli #
    2) con questo tipo di funzioni per le espressioni regolari, non sono sicuro che si possa utilizzare [:space:]

    Non ho capito una cosa, se tu hai "\n\n\n", devi ottenere "\n" oppure " " (spazio)?

    A seconda di quello che ti serve puoi usare uno di questi due esempi:

    Codice PHP:
    $var "ciaooo     fdsnjkfdsv dscnncds


    dscds
    dsaclmdsc


    dscòml    sclmslmdsc"
    ;

    echo 
    "<pre>";
    echo 
    preg_replace("#[ \n\r]+#"" "$var);
    echo 
    "<hr />";
    echo 
    preg_replace("#([\n\r\\s]?)[\n\r\\s]+#""$1"$var);
    echo 
    "</pre>"
    Nel secondo esempio però potrebbe fare un po' di casino nel caso in cui trovi " \n\n" che verrebbe sostituito con " ", sarebbe eventualmente da mettere a posto.

  8. #8
    E' un trucchetto, ma così dovresti togliere i doppi a capo e lasciarne uno:

    Codice PHP:
    while (strstr($stringa"\n\n"))
       
    str_replace("\n\n""\n"$stringa); 
    Così i doppi spazi:

    Codice PHP:
    while (strstr($stringa"  "))
       
    str_replace("  "" "$stringa); 
    Non l'ho provata!

  9. #9
    io per elimianri i doppi a capo di messaggi inviati tramite form uso quesat funzione

    codice:
    function eliminoDoppioACapo($testo)
    	{
    	$var 		= 	str_replace("
    ","",$testo);
    
    	$testo	=		nl2br(str_replace("'","\'",$var));
    
    	return $testo;
    	}
    ma non ho capito se e' quello che ti interessa...
    http://www.mcganass.com

  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    855

    ecco come serve...

    Ciao ragazzi, grazie...
    dunque mi serve una cosa che da:

    "Ecco il messaggio.




    Grazie."

    mi formatti in:

    "Ecco il messsaggio.
    Grazie."

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.