如何解决array_walk错误

时间:2010-03-11 22:31:31

标签: php arrays

这是我的代码,我收到了一个错误:

  require_once(IPT_DIR."config.php");
    if ($trackip == 1) {
            $ipaddr = $_SERVER["REMOTE_ADDR"] ;
     $hostnm = gethostbyaddr("$ipaddr");

     $exclude_me=false;
     array_walk($exclude_ips, 'exclude_ip');
     if(!$exclude_me) array_walk($exclude_hosts, 'exclude_host');
     if (!$exclude_me) {
      # concatenate SCRIPT_NAME and QUERY_STRING since REQUEST_URI not used in Windows hosted sites.
      # $pg = getenv(REQUEST_URI);
      # $pg = getenv(SCRIPT_NAME);
      $pg = $_SERVER["SCRIPT_NAME"];
      # if ((getenv(QUERY_STRING)) != "") { $pg = $pg . "?" . getenv(QUERY_STRING) ; }
      if (($_SERVER["QUERY_STRING"]) != "") { $pg = $pg . "?" . $_SERVER["QUERY_STRING"] ; }

    }

config.php 文件:

$trackip = 1;

$exclude_ips = array(); # quoted IP comma separated list, wildcards ok
# example: $exclude_ips = array('127.0.0.1', '68.69.+');

$exclude_hosts = array(); # quoted Hostname comma separated list, wildcards ok
# example: $exclude_hosts = array('swbcs007.sbc.com', '.+avantgo.com');

当我运行此脚本时,我收到此错误:

  

警告:array_walk()   [function.array-walk]:参数   应该是tracking.php上的一个数组   第80行

     

警告:array_walk()   [function.array-walk]:参数   应该是tracking.php上的一个数组   第81行

你知道为什么会这样吗?

2 个答案:

答案 0 :(得分:0)

$exclude_ips$exclude_hosts未定义,或者未定义数组。可能的原因:

  • 您正在编辑/包含错误的配置文件(或者,不太可能,根本不包含配置文件,但这应该引发错误我相信)
  • array_walk
  • 中使用之前,您正在从其他地方的配置文件中覆盖数组

答案 1 :(得分:0)

您可以在使用$ exclude_ips和$ exclude_hosts add

之前在config.php和tracking.php中尝试以下操作
global $exclude_hosts;
global $exclude_ips;