-1

我正在尝试检查 $userinfo[host](IP 地址列表)是否在 visitor.txt 文件中有任何匹配项。如果是,则回显匹配的字符串

似乎没有任何回应。也没有错误。

这是基本的txt文件

  208.54.22.144|1355385350
  208.54.14.235|1355386649
  69.151.178.16|1355386296

(编辑字符串)

$ips = file_get_contents('visitors.txt');
$ip_regex = '/\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b/';
foreach ($ips as $check){
preg_match($ip_regex, $check, $current_ip);
if ((strpos($userinfo['host'],$current_ip[0]) !== false)) {
echo $userinfo['host'];
}
}
4

2 回答 2

1

您说您正在检查 IP,但是,您现在拥有它的方式不仅仅是比较 IP,例如说我的 IP 是 127.0.0.1 并且在 visitor.txt 文件中我有一个有效的条目,例如 127.0.0.1 | 123456. 在你的 for each 循环中,它看起来像这样:

if(127.0.0.1, 127.0.0.1|123456)....

您可以尝试使用正则表达式仅比较 IP,以便从当前文本行中仅拆分 IP。例如:

$ips = file("visitors.txt");
echo "You are hosted at: ".$userinfo['host']."<br />";
$ip_regex = '/\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b/';
foreach ($ips as $check) {
    preg_match($ip_regex, $check, $current_ip);
    if ((strpos($userinfo['host'],$current_ip[0]) !== false)) {
        echo $userinfo['host'];
    }

}
于 2012-12-14T06:02:40.240 回答
0

试试这个方法。。

<?php
$ips = file_get_contents('test.txt');
if(strpos($ips, $userinfo['host']) !== FALSE)
{
  echo $userinfo['host'];
}
?>
于 2012-12-14T05:46:18.373 回答