我有一个简单的代码在localhost上工作正常,但在真正的服务器上不起作用

时间:2014-04-12 20:50:15

标签: php

我有一个简单的代码如下:

$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消息。

1 个答案:

答案 0 :(得分:1)

正如我在您的文件中看到的那样,每个主机后跟,\n,但在您的代码中,您正在,上爆炸,因此在每个字符串的开头(localhost除外),您\n你没有在数组中看到但是在比较字符串时php看到了。尝试修剪数组值。

在if语句之前尝试这个

 $banned_sites = array_map("trim", $banned_sites);