2015-12-03 3 views
0

кодексафункция PHP filter_var возвращает строку вместо булевой

<?php 
$test = filter_var("ftp://ftp.is.co.za.example.org/rfc/rfc1808.txt", FILTER_VALIDATE_URL); 
var_dump($test); 
?> 

Это возвращает;

строка (46) "ftp://ftp.is.co.za.example.org/rfc/rfc1808.txt"

Вместо того, чтобы логическое значение.

Проблема в том, что Мне нужно проверить, является ли строка URL или S/FTP-адресом.

Согласно сообщению PHP Doc, приведенный выше пример должен передать функцию filter_var. Но я не могу заставить его работать.

Любая помощь приветствуется.

+3

Она должна возвращать строку, если она действует, она только возвращает логическое значение FALSE, если он недействителен ..... и ваш пример действителен: «Остерегайтесь действительного URL-адреса, который может не указывать HTTP-протокол http: //, поэтому может потребоваться дополнительная проверка для определения URL-адреса, использующего ожидаемый протокол, например ssh: // или mailto: .' –

+0

@MarkBaker Вы правы. Я настолько глуп, что не понимаю этого раньше. Thx для указания этого. – choz

ответ

0

Если вам нужна булева истина или ложь для $test основно вы можете сделать, если Постулаты

$test = filter_var("ftp://ftp.is.co.za.example.org/rfc/rfc1808.txt", FILTER_VALIDATE_URL); 
if($test !== false){ 
    $test = true; 
} 
Смежные вопросы