0

Есть такой массив

Array ( [0] => [1] => 1.0.136.30 [2] => 1.0.136.29 ... (И так далее)

Мне нужно проверить есть ли в массиве элемент(предположим 1.0.136.30). Если есть - действие1, если нет - действие2. Этот код не срабатывает:

$lines = file('./database.txt');
$ip = "1.0.136.30";

if(in_array($ip, $lines)){ // действие 1 print_r("действие 1"); }else{ // действие 2 print_r("действие 2"); }

Всегда происходит действие2, вне зависимости есть эелемент в массиве или нет

1 Answers1

1

Попробуйте выявить проблему так:

$filePath = './database.txt';
if(!is_file($filePath)){
    throw new \Exception('Файл не найден');
}
if(!is_readable($filePath)){
    throw new \Exception('Нет прав на чтение файла');
}
if($lines = file($filePath, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES)){
    echo '<p>Файл прочитан успешно, всего строк'. count($lines) .'</p>'
}else{
    throw new \Exception('Файл не содержит данных');
}

$ip = "1.0.136.30";

if(in_array($ip, $lines, true)){ print_r("действие 1"); }else{ print_r("действие 2"); }

pgood
  • 532