我有一个简单的代码如下:
$fileName = "banned_sites.txt";
$fileContent = file_get_contents($fileName);
$banned_sites = explode(',', $fileContent);
if (in_array($_SERVER['HTTP_HOST'], $banned_sites)) {
echo "Yes it is <br/><br/>";
} else {
echo "No it does not <br/><br/>";
}
以下是banned_sites.txt
的内容,也是它的许可644,我也试过了755。
localhost,
yahoo.com,
mysite.net
打印数组时会给我Array ( [0] => localhost [1] => yahoo.com [2] => mysite.net )
,这证明文件是可读的
也没有出现任何错误消息。
现在我想知道,为什么以前的代码在localhost
上工作正常,但real web server
上的代码不起作用,并且总是给我No it does not
消息。
答案 0 :(得分:1)
正如我在您的文件中看到的那样,每个主机后跟,\n
,但在您的代码中,您正在,
上爆炸,因此在每个字符串的开头(localhost除外),您\n
你没有在数组中看到但是在比较字符串时php看到了。尝试修剪数组值。
在if语句之前尝试这个
$banned_sites = array_map("trim", $banned_sites);