PHP从txt文件向数组添加对象

时间:2015-01-18 16:04:37

标签: php arrays file include load

我正在尝试为阵列添加IP地址,但我无法正常工作 有人能看出我正在制造什么错误或推荐另一种解决方案吗?

$ipAddress = $_SERVER['REMOTE_ADDR'];
$include = include "ip.txt";

$array = array($include);

if (in_array($ipaddress, $array)){
    echo "in array";
}
else {echo "error";}

这是ip.txt文件的样子(文件是“公共”并不重要):

'IP1', 'IP2', 'IP3', 'IP4'

2 个答案:

答案 0 :(得分:0)

include将尝试将该文件作为PHP程序运行。

相反,请使用file_get_contents()

$include = file_get_contents('ip.txt');
$array = explode(', ', $include);

if (in_array("'$ipaddress'", $array)){
    echo "in array";
}

由于IP地址被'包围,因此也将其添加到in_array()中的针部分。

更容易将IP地址分别放在一行上。然后你可以使用file()返回一个带有文件行的数组。

答案 1 :(得分:0)

你做了一些错事,但这对你有用:

<?php

    $ipAddress = $_SERVER['REMOTE_ADDR'];
    $include = file_get_contents("ip.txt");


    $array = explode(",", str_replace("'", "", $include));

    if (in_array($ipAddress, $array)) {
        echo "in array";
    } else {
        echo "error";
    }

?>

1。你必须使用file_get_contents(),因为include首先包含文件,所以这个纯文本在php代码中,其次只返回truefalse!有关详细信息,请参阅手册:http://php.net/manual/en/function.include.php

从那里引用:

  

处理返回:include失败时返回FALSE并发出警告。成功包括,除非被包含文件覆盖,否则返回1.

2。你必须从文件中分解字符串并删除单引号以获取数组中的IP

3。 PHP变量区分大小写,因此$ipAddress$ipaddress是两个不同的变量!有关详细信息,请参阅手册:http://php.net/manual/en/language.variables.basics.php

还有一句话:

  

变量名称区分大小写。