Сравните IP-адрес в текстовом файле.Как искать? - PullRequest
2 голосов
/ 16 сентября 2011

У меня есть текстовый файл, содержимое которого следующее:

TME: 1316179740.2558|FNE: blog-comments.php|MSG: Kommenterade "ett nyare blogginlägg"-blogginlägget|IPA: ce8bf851d2b1bb1d7f7b24d3656f3d4c90d4ac88c50537e065843b7a0a6c8c236eef76d5814f0782f864209da2b8be1be0d449e86edbcd478847ccbe0189b61f

... и так далее.IPA означает IP-адрес и является IP-адресом посетителя.Я хочу сравнить эту информацию с реальным IP-адресом посетителей, так сказать, чтобы получить правильную информацию из файла для посетителя.Как мне это сделать?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 16 сентября 2011

Попробуйте

$array = file('textfiles/activity/'.$_GET['d'].'.txt'); 

foreach($array AS $key => $test) { 
    $info       = explode('|', $test); 
    $info_date  = explode('TME: ', $info[0]); 
    $info_msg   = explode('MSG: ', $info[2]); 
    $hashed_ip  = explode('IPA: ', $info[3]);
    if(trim($hashed_ip[1]) == hash('whirlpool', $_SERVER['REMOTE_ADDR'])) { 
        echo '<b>'.date('H:i', $info_date[1]).'</b>: '.$info_msg[1].'<br>';     
    }       
}
0 голосов
/ 16 сентября 2011

Вы можете использовать регулярное выражение, чтобы выхватить важную часть и сравнить это ...

if (preg_match_all('/IPA:\s*([a-f\d]+)/i', $subject, $matches, PREG_SET_ORDER)) {
    // your values will be in the $matches array here
    // with the actual IP hash in $matches[$i][1]
}

Я не знаю, какой длины IPA или каков конечный разделитель, такбудет захватывать все шестнадцатеричные символы, пока они не закончатся.

...