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

Тема в разделе "Как сделать...", создана пользователем Uglik, 12 окт 2012.

Статус темы:
Закрыта.
  1. Uglik

    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";
    }
     
  2. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    884
    Симпатии:
    540
    file - возвращает строки с кареткой и переносом строки - \r\n (или \n если не винда).
    if (in_array("Test\n", $array) || in_array("Test\r\n", $array)) {
    echo "TRUE";
    }
    скорее всего напечатает
     
    Uglik нравится это.
  3. Uglik

    Uglik

    Регистр.:
    8 окт 2008
    Сообщения:
    350
    Симпатии:
    14
    Заработало... Вот даже подумать не мог. И не обратил внимание. А если перебарть массив ? стоит замарачиватся ?
     
  4. swer

    swer

    Регистр.:
    15 июн 2008
    Сообщения:
    305
    Симпатии:
    38
    Можно еще использовать для отсечения пробелов в массиве.
    Код:
    array_map( 'trim', $array );
     
  5. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.522
    Симпатии:
    1.371
    Если версии php выше 5.0.0 можно использовать так же флаг FILE_IGNORE_NEW_LINES
    Пример:
    $in = @file('input.txt',FILE_IGNORE_NEW_LINES);
     
Статус темы:
Закрыта.