我有一个名为blacklist.txt
的txt文件。我需要检查输入的$fullURL
或其任何子域是否在文件中,如果没有,请执行一些功能。我已经做了这个代码,但它总是回响$bannedmsg
,我做错了什么?检查TXT文件是否有重合
$blacklist = file("./blacklist.txt");
$words = "/.*";
foreach ($blacklist as $zeile){
if ($zeile == $blacklist[count($blacklist)-1]){
$words .= trim($zeile);
}else{
$words .= trim($zeile);
$words .= "|";
}
}
$words .= ".*/";
preg_match($words, $fullURL, $results);
if(empty($results)){
// Do the function
}else{
//This is banned, echo $bannedmsg and die()
}
你确定'blacklist.txt'不包含任何空行吗?你是否尝试过打印'$ words'以确保它看起来正确? (顺便说一句,我认为你应该在'$ words'的开始和结尾删除'。*';这是没有必要的和误导性的。) – ruakh 2012-03-17 14:42:59
对于这个问题 - 构建这个大小并没有什么意义'$ words'正则表达式。你的'foreach($ blacklist as $ zeile)'-loop应该执行你需要的比较,回显'$ bannedmsg'并且如果它检测到匹配就死掉。 – ruakh 2012-03-17 14:47:53