Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果用户';的IP地址位于.txt文件中_Php_If Statement - Fatal编程技术网

Php 如果用户';的IP地址位于.txt文件中

Php 如果用户';的IP地址位于.txt文件中,php,if-statement,Php,If Statement,我尝试了REMOTE\u ADDR,也尝试了HTTP\u X\u FORWARDED\u FOR,但我仍然无法让它正常工作 基本上,如果在文本文件中找到用户IP,我希望将用户重定向到cnn.com,如果没有IP,则重定向到google.com 以下是文件中与我的IP不兼容的代码: <?php $iplist = @file("ip.txt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); $iparray = in_array($_SER

我尝试了
REMOTE\u ADDR
,也尝试了
HTTP\u X\u FORWARDED\u FOR
,但我仍然无法让它正常工作

基本上,如果在文本文件中找到用户IP,我希望将用户重定向到
cnn.com
,如果没有IP,则重定向到
google.com

以下是文件中与我的IP不兼容的代码:

<?php

$iplist = @file("ip.txt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$iparray = in_array($_SERVER["HTTP_X_FORWARDED_FOR"], $iplist);
//$iparray = in_array($_SERVER["REMOTE_ADDR"], $iplist);

//###if ?test= is not empty
if (!empty($_GET["test"])){
        if($iparray){
            header("Location: http://cnn.com");die;
        }
}
header("Location: http://google.com");

?>

注意:测试时,我的URL末尾有?test=1


我希望保留这样的格式,即只保留if语句+尽可能停止其余代码的执行,因此
头(“位置:http://google.com");不执行。

如果您的ip在文件中且文件路径正确,请尝试以下操作:

if (false !== strpos(file_get_contents($filename), $ip_to_search)){
     // ip in the file
}
else {
     // otherwise
}

如果您的ip位于文件中且文件路径正确,请尝试以下操作:

if (false !== strpos(file_get_contents($filename), $ip_to_search)){
     // ip in the file
}
else {
     // otherwise
}


您确定文件中有ip吗?(尝试
var_dump($_SERVER['REMOTE_ADDR'],$_SERVER[“HTTP_X_FORWARDED_FOR”],$iplist);
并检查ip是否真的在里面)如果(在数组中($_SERVER['REMOTE_ADDR'],$iplist)){header(“Location:;}否则{header(“Location:);die()}@duanelorti在
$_SERVER['REMOTE ADDR']周围加引号)
是完全不必要的。请验证
ip.txt
文件是否正在加载。从
文件()的开头删除
@
错误抑制,然后查看是否出现任何文件警告。为什么不使用数据库?您确定文件中有ip吗?(请尝试
var\u dump($\u SERVER['REMOTE\u ADDR'),$\u SERVER[“HTTP\u X\u FORWARDED\u FOR”],$iplist);
并检查ip是否真的在里面)if(在数组($服务器['REMOTE\u ADDR',$iplist]){header(“位置:;}否则{header(“位置:);die()}@DuaneLortie周围的引号
$服务器['REMOTE\u ADDR']
是完全不必要的。请验证是否正在加载
ip.txt
文件。从
文件()的开头删除
@
错误抑制,并查看是否出现任何文件警告。为什么不使用数据库?这也将为部分匹配提供
true
(如果文件中存在ip
101.2.3.101
,则
1.2.3.1
将为真)@Aleksey Dubinin既然我需要文本文件,那么使用文本文件的解决方案是什么?@Dekel,是的,我考虑过这些情况。当然,它们不经常出现,但必须引起他们的注意。@Joebby,你也可以使用正则表达式。这还取决于你如何存储IP。还有一件事:你打印了吗e$iplist数组?@AlekseyDubinin文本文件中的唯一内容是每行1个IP,分隔IP的空格,以及以#开头的行来组织IP。如何打印$iplist?这还将为部分匹配提供
true
1.2.3.1
如果文件中存在IP
101.2.3.101
则提供true)@Aleksey Dubinin既然我需要文本文件,那么使用文本文件的解决方案是什么?@Dekel,是的,我考虑过这些情况。当然,它们不经常出现,但必须引起他们的注意。@Joebby,你也可以使用正则表达式。这还取决于你如何存储IP。还有一件事:你打印了吗e$iplist数组?@AlekseyDubinin文本文件中的唯一内容是每行1个IP,用空格分隔IP,用以组织IP的行以#开头。如何打印$iplist?