PHP filter_var函数返回字符串而不是布尔值

PHP filter_var函数返回字符串而不是布尔值,php,ftp,Php,Ftp,代码 这种回归 字符串(46)” 而不是布尔值 问题是,, 我需要验证字符串是URL还是S/FTP地址 根据注释,上面的示例应该通过filter\u var函数。但我似乎无法让它工作 非常感谢您的帮助。如果您需要$test的布尔值true或false,基本上您可以在 $test = filter_var("ftp://ftp.is.co.za.example.org/rfc/rfc1808.txt", FILTER_VALIDATE_URL); if($test !== false){

代码


这种回归

字符串(46)”

而不是布尔值

问题是,, 我需要验证字符串是URL还是S/FTP地址

根据注释,上面的示例应该通过
filter\u var
函数。但我似乎无法让它工作


非常感谢您的帮助。

如果您需要
$test
的布尔值true或false,基本上您可以在

$test = filter_var("ftp://ftp.is.co.za.example.org/rfc/rfc1808.txt", FILTER_VALIDATE_URL);
if($test !== false){
    $test = true;
}

如果它是有效的,它应该返回一个字符串,如果它是无效的,它只返回一个布尔值false。。。。。您的示例是有效的:
注意,有效的URL可能没有指定HTTP协议HTTP://因此可能需要进一步验证以确定URL是否使用预期的协议,例如ssh://或mailto:.
@MarkBaker您是对的。我真傻,没早点意识到这一点。谢谢你指出这一点。
$test = filter_var("ftp://ftp.is.co.za.example.org/rfc/rfc1808.txt", FILTER_VALIDATE_URL);
if($test !== false){
    $test = true;
}