Не работает in_array для массива, полученного функцией file

Статус
В этой теме нельзя размещать новые ответы.

Uglik

Старатель
Регистрация
8 Окт 2008
Сообщения
350
Реакции
14
Здравствуйте

Подскажите в чем может быть проблема? Вот пример:

PHP:
$file_name = 'title';
$file = $_SERVER[DOCUMENT_ROOT].'/'.$file_name.'.txt';
 
$array = file($file);
 
if (in_array("Test", $array)) {
    echo "TRUE";
}

Не работает данная конструкция в чем может быть дело хотя пример работает

Код:
$os = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $os)) {
    echo "Got Irix";
}
 
file - возвращает строки с кареткой и переносом строки - \r\n (или \n если не винда).
if (in_array("Test\n", $array) || in_array("Test\r\n", $array)) {
echo "TRUE";
}
скорее всего напечатает
 
file - возвращает строки с кареткой и переносом строки - \r\n (или \n если не винда).
if (in_array("Test\n", $array) || in_array("Test\r\n", $array)) {
echo "TRUE";
}
скорее всего напечатает
Заработало... Вот даже подумать не мог. И не обратил внимание. А если перебарть массив ? стоит замарачиватся ?
 
Можно еще использовать для отсечения пробелов в массиве.
Код:
array_map( 'trim', $array );
 
Если версии php выше 5.0.0 можно использовать так же флаг FILE_IGNORE_NEW_LINES
Пример:
$in = @file('input.txt',FILE_IGNORE_NEW_LINES);
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху