Hi,
The following appliaction for the following html form and php script was
taken from Larry Ullman's book on PHP on page 130 - 131.

What it does is this:

1. the user is presented with a form with a few textboxes and a textarea
box.

2. the user fills in the boxes with a URL and a descripttion of the URL and
submits it.

3. the PHP takes the string which has three groupings and parses it uses the
eregi_replace() function.

4. The end result is that the URL input from the user becomes a active <A
HREF>link.


The script works fine but I have a question with the following line:

$Pattern="(http://)([^[:space:]]+) ([[:alnum:]\.,-?/&=])"; // The variable
$Pattern is declared with three groupings.

My question:
If the user inadvertantly inputs a *space* _after_ the http:// grouping and
_before_ the www. grouping my understanding is that would not be valid from
the $Pattern match due to:
................
([^[:space:]]+)
..................

Correct?

I tried the script by putting a space before the URL and the PHP still
processes the data with no error.

Please advise.
Thank you.
Tony Ritter








//this is the html form

<HTML>
<HEAD>
</HEAD>
<BODY>
<FORM METHOD=POST  ACTION="1201.php">
First Name<INPUT TYPE=TEXT NAME="Array[FirstName]" SIZE=20><BR>
Last Name <INPUT TYPE=TEXT NAME="Array[LastName]" SIZE=40><BR>
URL <INPUT TYPE=TEXT NAME="Array[URL]" SIZE=60><BR>
Description<TEXTAREA NAME="Array[Description]" ROWS=5
COLS=40></TEXTAREA><BR>
<INPUT TYPE=SUBMIT NAME="SUBMIT" VALUE="Submit!">
</FORM>
</BODY>
</HTML>

..................
 //this is the script called 1201.php which receives the data from the form.

<HTML>
<HEAD>
<TITLE>Using Regular Expressions</TITLE>
</HEAD>
<BODY>
<?php

if (($Array["FirstName"]) AND ($Array["LastName"]))
 {
   $Array["Name"] = $Array["FirstName"] . " " . $Array["LastName"];
 }

else
 {print ("Please enter your first and last names.<BR>\n");
  }

$Pattern = "(http://)?([^[:space:]]+)([[:alnum:]\.,-_?/&=])";
$Replace = "<a href=\"http://\\2\\3\"; target=\"_new\">\\2\\3</a>";
$Array["URL"] = eregi_replace($Pattern, $Replace, $Array["URL"]);

print ("Your submission--$Array[URL]--has been received!<BR>\n");

?>
</BODY>
</HTML>

--





-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to