Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    153

    memorizzare un testo in linea, senza andare a capo.

    Io ho un form che invia il testo contenuto in una textarea che viene poi memorizzato su un database. Naturalmente, prima di essere inserito utilizzo la funzione htmlspecialchars per eliminare tutta la formattazione html e il risultato è ottimale.
    Il mio problema è, però, che il testo viene memorizzato sul database andando a capo ogni qualvolta che viene premuto invio... io invece vorrei che venisse memorizzato come una stringa unica di caratteri ma che quando poi viene letta vada a capo correttamente.

    Mi spiego meglio, se io scrivo:

    Ciao,
    sono Giovanni

    vorrei che sul database venisse memorizzato: ciao,\n sono Giovanni.

  2. #2
    Il carattere \n è proprio l'accapo. Potresti inventarti un carattere jolly da sostituire con uno str_replace a tutti gli a capo e per ripristinare gli a capo quando stampi a video. Ma sinceramnte la considero una cosa estremamente poco funzionale. Mi spieghi perché devi fare queste modifiche?
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    153
    esatto, infatti è proprio il carattere \n che voglio e NON voglio che vada fisicamente a capo, voglio, ossia che la stringa salvata sul database sia:

    Ciao,\n sono pippo

    ANZICHE'

    Ciao,
    sono pippo

    come fa ora, su due righe separate. io voglio che sia salvato su una singola riga e che il simbolo di acapo sia proprio \n. Mi serve perchè questa stringa viene inserita in uno script che la legge e che non accetta che si vada a capo ma deve leggere tutto in linea.

  4. #4
    Non capisco come può uno script del genere essere tanto schizzinoso in ogni caso.
    Codifica l'a capo in una serie di caratteri che conosci tu io t faccio un esempio:

    ogni a capo per noi sarà: ~~n~~.

    fai una str_replace sostituendo ad ogni \n la sequenza ~~n~~ (usa caratteri che non ci sono nella tastiera possibilmente eviterai casini se qualche simpaticone te li inserisce, x questo in questi casi uso sempre le tilde).

    A questo punto per ogni a capo avrai una nuova sequenza. Se vuoi stampare a video ti basta sostituire questa sequenza con un
    di html. Ti consiglio d fare questa sostituizione non nel database ma appena prendi la stringa dalla query, perché per ogni a capo metti 5 caratteri e se hai stringhe lunghe potresti incrementare di tanto la dimensione del record (ricordati che ogni carattere è codificato con un byte). Se lasci la stringa con gli /n e la sistemi con le sequenze nuove una volta tirata fuori dal db per passarla allo script per te è perfetto!
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

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.