我正在编写一个小脚本,用户将 url 添加到 textarea,我发现这个小函数来验证单个链接:
function isValidURL($url){
return preg_match('|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i', $url);
}
但我需要它来验证一系列链接
我使用爆炸来分开每个这样的:
$urls = explode("\n", $_POST['urls']);
我知道我需要使用 a 循环 url 数组,foreach
但我怎样才能在我的$var
内部获取 foreachelseif
例子:
function isValidURL($url){
return preg_match('|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i', $valid);
}
$urls = array('http://iamvalid.com','iamnotvalid.com','http://iamvalidaswell.com');
foreach ($urls as $check) {
$validate = isValidURL($check);
}
if($check != $validate) {
// If fail
$result = 'fail';
} else {
// If pass
$result = 'pass';
} // if
echo $result;
(出于演示目的,使用数组而不是 expode)
更新: Deepaks回答效果很好,但与我的 mysql 注入预防功能冲突
冲突函数:
function sanitizeSQL($input) {
if(get_magic_quotes_gpc() == true){
$input = stripslashes($input);
}
return mysql_real_escape_string(htmlspecialchars($input));
}