Ok heres the basic thing. Ive got a simple text area that enters its data into a mySQL database. From this it is then displayed again, now most HTML I can add notes to and get people to put in themselves (eg. <i>) however for starting a new line? I think that should be automatically done. So whats the best way to add the <br /> html code to that text field each time a new line is started?
Adding <br /> to text area
If you want it to be text to be editable by your users that use something similar to the following
Otherwise use nl2br on the variable before you enter it in to the database.
nl2br will use <br /> instead of <br> therefore making the linebreaks XHTML complient.[/code]
| Code: |
| $text = nl2br($mysqldata);
echo "$text"; |
Otherwise use nl2br on the variable before you enter it in to the database.
nl2br will use <br /> instead of <br> therefore making the linebreaks XHTML complient.[/code]
Thanks
The only problem I am having now is to many being entered in certain places :S
The only problem I am having now is to many being entered in certain places :S
This is the function I use to format text, feel free to tweak for your needs:
| Code: |
|
function autop($pee, $br = 1) { $pee = $pee . "\n"; // just to make things a little easier, pad the end $pee = preg_replace('|<br />\s*<br />|', "\n\n", $pee); $pee = preg_replace('!(<(?:table|ul|ol|li|pre|form|blockquote|h[1-6])[^>]*>)!', "\n$1", $pee); // Space things out a little $pee = preg_replace('!(</(?:table|ul|ol|li|pre|form|blockquote|h[1-6])>)!', "$1\n", $pee); // Space things out a little $pee = preg_replace("/(\r\n|\r)/", "\n", $pee); // cross-platform newlines $pee = preg_replace("/\n\n+/", "\n\n", $pee); // take care of duplicates $pee = preg_replace('/\n?(.+?)(?:\n\s*\n|\z)/s', "\t<p>$1</p>\n", $pee); // make paragraphs, including one at the end $pee = preg_replace('|<p>\s*?</p>|', '', $pee); // under certain strange conditions it could create a P of entirely whitespace $pee = preg_replace("|<p>(<li.+?)</p>|", "$1", $pee); // problem with nested lists $pee = preg_replace('|<p><blockquote([^>]*)>|i', "<blockquote$1><p>", $pee); $pee = str_replace('</blockquote></p>', '</p></blockquote>', $pee); $pee = preg_replace('!<p>\s*(</?(?:table|tr|td|th|div|ul|ol|li|pre|select|form|blockquote|p|h[1-6])[^>]*>)!', "$1", $pee); $pee = preg_replace('!(</?(?:table|tr|td|th|div|ul|ol|li|pre|select|form|blockquote|p|h[1-6])[^>]*>)\s*</p>!', "$1", $pee); if ($br) $pee = preg_replace('|(?<!<br />)\s*\n|', "<br />\n", $pee); // optionally make line breaks $pee = preg_replace('!(</?(?:table|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|select|form|blockquote|p|h[1-6])[^>]*>)\s*<br />!', "$1", $pee); $pee = preg_replace('!<br />(\s*</?(?:p|li|div|th|pre|td|ul|ol)>)!', '$1', $pee); $pee = preg_replace('/&([^#])(?![a-z]{1,8};)/', '&$1', $pee); return $pee; } |
Related topics
