-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 以外のものを比較しています。 | | 123456. for each ループでは、次のようになります。

もし(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 に答える