我做了一个简单的函数来验证通过 textarea 提交的 URL(每行 1 个链接):
function validate_urls($value)
{
//final array of links
$links = array();
$value = array_map(function($a) use (&$links){
$a = trim($a);
if(strlen($a) !== 0 and (strpos($a, 'http') !== 0 or strpos($a, 'https') !== 0)){
$a = 'http://'.$a;
}
$url = parse_url($a,PHP_URL_HOST);
if($url != null and !in_array($a, $links) and filter_var($a, FILTER_VALIDATE_URL) !== false and checkdnsrr($a)){
$links[] = $a;
}
return false;
}, explode("\n",$value));
return $links;
}
var_dump(validate_urls($_POST['links']);
这样做是检查是否
- 网址有效
- 该 URL 处于活动状态
- URL 不是重复的
问题是,为什么它不起作用(返回一个空数组)?我已经检查了每一项检查,它应该可以工作,但它没有。对不起,如果代码很乱,我还在努力学习。