Re: Regular expression - URL validator
| From: | shiplu | Date: | Tue, 28 Aug 2007 20:35:11 +0000 |
| Subject: | Re: Regular expression - URL validator | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-261424@lists.php.net to get a copy of this message | ||
On 8/28/07, Wagner Garcia Campagner <wagnergc@itautec.com> wrote:
>
> 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
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
you must use http://www.aol.com not www.aol.com. coz the later is
not a
valid url. The protocol is not specified there. and if you use
www.aol.comis your href of a tags, the browser will automatically add
your current web
address as prefix as if its a relative url.
if your site is http://www.example.com/folder/site.html
and if you use href="/www.aol.com" it will show http://www.example.com/
www.aol.com
if you use href="www.aol.com" it will show
http://www.example.com/folder/<http://www.aol.com/>
www.aol.com
you have to use href="http://www.aol.com" the
absolute one.
--
shout at http://shiplu.awardspace.com/
Available for Hire/Contract/Full Time