Народ, всю голову сломал. Есть файлик, в который из БД SQL выгружаются списки томов присутствующих на файловом хранилище. Во время формирования полей типа Select я считываю данные из этого файлика и в разных случаях пытаюсь выбрать из них только нужные. Скажем в текстовом файле есть в столбик vl11 vl12 vl13 vl21 vl22 vl23 vl24 Мне нужно выбрать все кроме vl13 и мд21. В конце столбца есть пустая строка. Как ее убрать при выгрузке не знаю, поэтому убираю при загрузке в Select Код (Text): <?php $FileVars = fopen("C:\\inetpub\\wwwroot\\TestPHP\\VarLists\\VlList.txt", "r"); while(!feof($FileVars)) { $Line = fgets($FileVars); if ($Line!="" && $Line!=="vl13" && $Line!=="vl21") echo '<option>'.$Line.'</option>'; } fclose($FileVars); ?> Так вот первый параметр отфильтровывание пустой строки отрабатывает. А отфильтровывание значений vl13 и vl21 нет. В чем может быть проблема?
ну... чего же стока велосипедов то? 1. А нельзя из PHP к БД подключиться и по человечески забрать данные? 2. скорее всего в файле в строках присутствуют "невидимые" но значащие символы, типа /r /n и прочие 3. А может вообще в коде фильтрования ошибки.... ) или тут разговор о Код (Text): $Line!=="vl13" ? так у вас типы наверное не совпадают... сделайте сравнение !=
Сначала было != , а потом когда не добился чтобы это заработало попробовал !==. Из БД каждый раз выгружать очень сильно тормозит. Поэтому и сделал, что из БД в эти файлики выгружается по шедулеру, а уже сайт использует эти файлики.
Смешно, но не информативно. Это уже были танцы с бубном, т.к. непонятно почему $Line!="" работает, а $Line!='Vl13' не работает. Вот я и начал думать, что там что-то с переменными не то.
информативно - см. пункт 2 первого ответа для проверки вставьте новую строку и впишите свои vl12 а все же почему файл? Если долгий запрос - можно результат в таблицу какую то и оттуда использовать с всей мощью SQL или почему такие условия, формируйте список в файл добавив сразу в SQL отсеивание ненужных элементов
Честно говоря не понял куда вставить? Хотя наверное понял. Создал файл вручную и вручную вписал туда тома включая те, которые нужно по условию исключить. Не работает. Снова не исключает их. Возможно к этому и приду, если не разберусь с фильтром. Просто очень много тогда файликов создавать придется.
или лыжи не едут... или ... п2 не веришь? PHP: $FileVars = fopen("C:\\inetpub\\wwwroot\\TestPHP\\VarLists\\VlList.txt", "r"); while(!feof($FileVars)){ $Line = fgets($FileVars); $ClearLine = trim($Line); var_dump($Line); echo " =>"; var_dump($ClearLine); if ($ClearLine!="" && $ClearLine!=="vl13" && $ClearLine!=="vl21") echo '<option>'.$ClearLine.'</option>'; } fclose($FileVars);
Я же говорю. Я создал такой файл вручную и вручную вписал туда список томов. там точно никаких спецсимволов. Не работает.