Re: Re: Php filter validate url
| From: | Plamen Ivanov | Date: | Mon, 27 Jun 2011 15:25:11 +0000 |
| Subject: | Re: Re: Php filter validate url | ||
| References: | 1 2 3 4 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-313756@lists.php.net to get a copy of this message | ||
On Mon, Jun 27, 2011 at 11:14 AM, Shawn McKenzie <nospam@mckenzies.net> wrote:
> 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
>
http://php.net/manual/en/function.parse-url.php
"This function is not meant to validate the given URL..."
I would use parse_url() after URL validation.