On Thursday 15 February 2001 04:31, Dallas Kropka wrote:
> I have a few text input boxes that I am using to allow the client to
> compose emails for a mailing list... does anyone have a little snippet
> that will take the "\n's" and turn them into <BR>'s? I would attempt to
> write one myself.... but Im not the best at ereg or replace code...

nl2br () is the simple solution (as others already mentioned).
Attached is a more sophisticated one I use in my code. It detects 
paragraphs (empty lines), and highlights URLs and email adresses.

-- 
Christian Reiniger
LGDC Webmaster (http://sunsite.dk/lgdc/)

I saw God --------- and she was black.
<?php

/*
 * $Id: text2html.php,v 1.7 2001/01/07 21:03:23 chris Exp $
 */


function pbText2HTML ($Text, $LinkStyleClass = '', $LinkTarget = '')
{
	$NewText      = "";
        $LastWasBlank = true;

        // (1) quote all HTML entities (assumes iso8859-1)
	$Text = htmlentities ($Text);

	// (2) Divide into paragraphs and
        // (3) Add markup for URLs
	foreach (explode ("\n", $Text) as $CLine)
	{
		$CLine = trim ($CLine);

		if ($CLine == '') {
			if ($LastWasBlank) {
                                // ignore multiple blank lines
				continue;
			}
			else {
				$LastWasBlank = true;
				$NewText .= "</p>\n";
			}
		}
		else {
			if ($LastWasBlank) {
                                $LastWasBlank = false;
				$NewText .= "<p>\n";
			}

			$NewText .= pb_t2h_URLMarkup ($CLine,
						      $LinkStyleClass,
						      $LinkTarget);
			$NewText .= "\n";
		}
	}

        return $NewText;
}



function pb_t2h_URLMarkup ($Text, $StyleClass = '', $Target = '')
{
	if ($StyleClass != '')
		$ClassS = " class='$StyleClass'";
	else
		$ClassS = "";

	if ($Target != '')
		$TargetS = " target='$Target'";
	else
		$TargetS = '';

	$Patterns = array ('/([^"\'])(http:\/\/[\w\.\/~\-]+)/',
                           '/([^"\'])(ftp:\/\/[\w\.\/~\-]+)/',
			   '/([^"\'\w-\.\/])(www\.[\w\.\/~\-]+)/',
			   '/^(www\.[\w\.\/~\-]+)/',
			   '/([\w\.~\-=]+@[\w\.~\-]+)/');

	$Replacements = array ("\\1<a href='\\2'$ClassS$TargetS>\\2</a>",
			       "\\1<a href='\\2'$ClassS$TargetS>\\2</a>",
			       "\\1<a href='http://\\2'$ClassS$TargetS>\\2</a>",
			       "<a href='http://\\1'$ClassS$TargetS>\\1</a>",
                               "<a href='mailto:\\1'$ClassS>\\1</a>");

	return preg_replace ($Patterns, $Replacements, $Text);
}


?>
-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to