PHP - Проверить наличие элемента в массиве
Есть такой массив
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 шт):
Автор решения: pgood
→ Ссылка
Попробуйте выявить проблему так:
$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");
}