PDA

View Full Version : Gestire le stringhe in PHP


Serpiko
11-01-2006, 13:17
Ciao a tutti, vorrei qualche soluzione se possibile al mio problema che vi espongo sotto:
Devo poter visualizzare dentro un blocco di una pagina web del testo che non deve eccedere una certa dimensione fissata per non sforare.
Se viene inserito un link, o cmq un insieme continuo di caratteri non separabile, lo visualizza ma esce dall'area in cui voglio farlo vedere.

Come faccio a far in modo che arrivato ad un certo numero di caratteri lo spezzi direttamente e lo mandi a capo?

ho provato la funzione wordwrap($testo, 100, '<br />');
ma non divide il testo lungo per mandarlo a capo ma solo del testo che presenta spazi tra le parole.

Problema 2: ho una textarea che memorizza nel database un testo. Nel database non vengono memorizzati gli invii (a capo) che do durante la scrittura nella textarea con conseguente visualizzazione sulla pagina web senza 'a capo'. Come faccio a far in modo che anche la tabulazione a capo si possa vedere na volta presentato nella pagina? (il testo è caricato tra i tag <p> </p>)

andbin
11-01-2006, 14:35
Come faccio a far in modo che arrivato ad un certo numero di caratteri lo spezzi direttamente e lo mandi a capo?

ho provato la funzione wordwrap($testo, 100, '<br />');
ma non divide il testo lungo per mandarlo a capo ma solo del testo che presenta spazi tra le parole.
Hai guardato bene la documentazione della wordwrap? ;) C'è un quarto parametro (opzionale) che se impostato a 1, forza sempre in ogni caso la suddivisione della riga alla lunghezza specificata.

Problema 2: ho una textarea che memorizza nel database un testo. Nel database non vengono memorizzati gli invii (a capo) che do durante la scrittura nella textarea con conseguente visualizzazione sulla pagina web senza 'a capo'. Come faccio a far in modo che anche la tabulazione a capo si possa vedere na volta presentato nella pagina? (il testo è caricato tra i tag <p> </p>)
Devi usare una funzione che effettui l'escape della stringa, prima di inserirla all'interno della query da far eseguire. Se usi il MySQL c'è la funzione mysql_real_escape_string().

Serpiko
11-01-2006, 16:57
Ho provato aggiungendo il quarto parametro e la stringa in effetti vine troncata in base alla lunghezza scelta.
C'è un problema residuo:
- ora la stringa lunga è a filo di margini, tutto ok, ma le stringhe degli altri messaggi vengono troncate prima della fine del margine pur avendo ancora spazio da sfruttare, come mai?

Per la mia seconda domanda, provo adesso la soluzione che mi hai fornito

Serpiko
11-01-2006, 17:03
Per il secondo problema ho risolto pescando dal database il dato e poi stampandolo applicando la funzione nl2br(stringa); che riconosce le tabulazioni e le stampa. Tutto ok per questo.
Il primo problema rimane se mi siuscite a dare una mano