Re: Re: Php filter validate url
| From: | Shawn McKenzie | Date: | Mon, 27 Jun 2011 15:14:55 +0000 |
| Subject: | Re: Re: Php filter validate url | ||
| References: | 1 2 3 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-313755@lists.php.net to get a copy of this message | ||
On 06/27/2011 10:01 AM, Plamen Ivanov wrote:
> On Sun, Jun 26, 2011 at 5:44 PM, Shawn McKenzie <nospam@mckenzies.net> wrote:
>>
>> On 06/26/2011 12:31 PM, Adam Tong wrote:
>>> Hi,
>>>
>>> I wanted tu use php filters for validation to avoid regular expresions.
>>> Is it possible that FILTER_VALIDATE_URL only checks if the string has
>>> http:// and do not check for the format
>>> domain.something?
>>> ----
>>> $url = 'http://wwwtestcom';
>>> $url = filter_var($url,FILTER_VALIDATE_URL);
>>> echo $url;
>>> -----
>>>
>>> Or I am doing something wrong
>>>
>>> Thank you
>>
>> Unless I'm totally misunderstanding what you want (validate that a
>> string starts with http://) try:
>>
>> if(strpos($url, 'http://') === 0) {
>> //starts with http://
>> } esle {
>> // does not start with http://
>> }
>>
>> --
>> Thanks!
>> -Shawn
>> http://www.spidean.com
>>
>> --
>> PHP General Mailing List (http://www.php.net/)
>> To unsubscribe, visit: http://www.php.net/unsub.php
>>
>
> Another possible solution could be:
>
> $ary = explode('://', $url);
> if (1 >= count($ary)) {
> echo 'No schema specified!';
> } else {
> // Schema specified.
> // $ary[0] is the protocol
> $allowed = array('http', 'https');
> if (FALSE == in_array($ary[0], $allowed) {
> // Protocol not valid!
> exit(1); // or return FALSE; whatever...
> }
> // $ary[1] is the uri, validate with filter_var().
> }
>
> Hope this helps.
May make more sense to use parse_url() than explode.
--
Thanks!
-Shawn
http://www.spidean.com