- Home
- Categorie
- Coding e Sistemistica
- Coding
- Come trasformare gli enter in </p><p>
-
Come trasformare gli enter in </p><p>
Se faccio inserire una recensione agli utenti del mio sito, per far andare a capo, ovvero per trasformare il loro "invio" in un <br> uso questa funzione:
$review_news = nl2br($review_news);
Come posso sostituire gli "invio" con fine ed inizio paragrafo?
Perchè è più bello da leggere un testo duddisvio per paragrafi con un po' di spazio tra di loro.Spiegato mi sono?
Grazie.
-
Intercetti il carattere di fine riga e lo sostituisci con un str_replace().
Attenzione che tale carattere cambia nei sistemi win, linux e mac.Se fai una ricerca su google trovi moltissimo materiale
-
[url=http://it.php.net/manual/it/function.nl2br.php#60381]PHP: nl2br - Manual
[url=http://www.php-editors.com/contest/1/51-read.html]PHP Editor Review - PHP Functions : Formatting text for XHTML using nl2p function
-
E sapete che mi è venuto in mente?
Perchè non fare così:
una volta trasformato il carattere di fine riga in <br> non riapplico un cambio di stringa cambiando il <br> in </p><p> ?Sarebbe un doppio cambio di stringa fatto in successione e penso che non ci sarebbero problemi, o sbaglio?
Grazie come sempre!
-
Non ti conviene per due motivi:
- fai fare più lavoro al pc
- se hai bisogno di mettere un <br> come fai?
Potresti usare questa, dal manuale di php
<?php function nl2p($text) { return "<p>" . str_replace(array("\r\n", "\n", "\r"), "</p><p>", $text) . "</p>"; } ?>
-
@massy said:
Potresti usare questa, dal manuale di php
<?php function nl2p($text) { return "<p>" . str_replace(array("\r\n", "\n", "\r"), "</p><p>", $text) . "</p>"; } ?>
Una prima domanda:
che differenza c'è rispetto a questa?function nl2p($text) { return "<p>" . str_replace("\n", "</p><p>", $text) . "</p>";}
Seconda domanda.
Se uno mi mette un doppio a capo mi trovo dei paragrafi vuoti che non vengono visualizzati con riga vuota. Mi trovo il codice html così:
<p></p>io lo volevo riempire con uno spazio bianco ed ho applicato un cambiamento di stringa:
$news_text = str_replace("<p></p>","<p> </p>", $news_text);
ma NON mi funziona e non capisco dove sta l'errore.
Se metto a posto questi ultimi due particolari poi vi posto il codice completo che potrà essere utile per tutti.
-
Cambio di rotta. La paginazione "bella da leggere" la faccio coi css. Mi serve una funzione inversa. Ovvero devo togliere i <p></p> vuoti.
Ecco come ho fatto:
$news_text = str_replace("</p><p></p><p>","</p><p>", $news_text);Ma non mi vaaaaa :(((((
Ecco il codice html:</p><p>a capo </p><p> </p><p>doppio spazio </p><p> </p><p> </p><p>triplo spazio </p><p>
Ci sono gli a capo nel codice html che danno problemi?
-
Suggerimento: carica i testi in un array (una riga=un elemento dell'array)
e poi fai
echo "<p>".implode("</p><p>", $array)."</p>");
e ti ritrovi senza tag di troppo nel codice.