RE: [PHP] Regular expression - URL validator
| From: | Wagner Garcia Campagner | Date: | Tue, 28 Aug 2007 20:22:26 +0000 |
| Subject: | RE: [PHP] Regular expression - URL validator | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-261423@lists.php.net to get a copy of this message | ||
Thanks Jim,
Your sugestion worked perfect for me!!
I have another question:
After i validate this URL i want to put a link with this URL in my page.
The problem is that if the URL is like (www.aol.com), when i create the
link, this URL is appended with the URL of my site. The result is a link
pointing to: http://<mywebsite>/www.aol.com
But if the URL is like (http://aol.com), then the link is created correct.
Is there a way to avoid the first situation... so the link is created
correct?
Thanks again,
Wagner.
-----Original Message-----
From: Jim Lucas [mailto:lists@cmsws.com]
Sent: segunda-feira, 27 de agosto de 2007 17:36
To: PHP General; wagnergc@itautec.com
Subject: Re: [PHP] Regular expression - URL validator
Wagner Garcia Campagner wrote:
> Hello,
>
> I found this regular expression on a web site.
> It is basicaly an URL validator.
>
> I'm trying to implement this in my web site, but i receive errors.
>
> I think this is a PERL REGEX so what should i do to make it work in php?
>
>
> $valid =
>
(preg_match('^((((H|h)(T|t)|(F|f))(T|t)(P|p)((S|s)?))\://)?(www.|[a-zA-Z0-9]
>
.)[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,6}(\:[0-9]{1,5})*(/($|[a-zA-Z0-9\.\,\;\?\'\\\
> +&%\$#\=~_\-]+))*$', $_POST['website']));
This should be preg_match('/.../i', $_POST['website'])
your regex should look something like this.
^((ftp|(http(s)?))://)?(\.?([a-z0-9-]+))+\.[a-z]{2,6}(:[0-9]{1,5})?(/[a-zA-Z
0-9.,;\?|\'+&%\$#=~_-]+)*$
So, put it all together and it should look like this.
<?php
$url = "...PUT YOUR TEST URL HERE...";
if (
preg_match('!^((ftp|(http(s)?))://)?(\.?([a-z0-9-]+))+\.[a-z]{2,6}(:[0-9]{1,
5})?(/[a-zA-Z0-9.,;\?|\'+&%\$#=~_-]+)*$!i',
$url) ) {
echo "Matched";
} else {
echo "Did not match";
}
>
> if ($valido == 0) {
> something here;
> }
> else {
> something else here;
> }
>
>
> Thanks a lot in advance,
> Wagner.
>
--
Jim Lucas
"Some men are born to greatness, some achieve greatness,
and some have greatness thrust upon them."
Twelfth Night, Act II, Scene V
by William Shakespeare