Работает у меня на локальном сервере: ОС - Ubuntu 11.10. Web-server - Apache2. PHP - Version 5.3.6-13ubuntu3.3.
А на сервере в сети не работает: ОС - Windows Server 2003 SP2. Web-server - Apache2. PHP - Version 5.3.9.
PHP не обрабатывает "<?=$test?>" и выдаёт её как есть, хотя тот - же самый
а если в базе 10 пользователей с именем Николай, но разными фамилиями.
Человек вводит в строку поиска просто имя Николай, без Фамилии.
Как получить выборку 10 человек ?
Доброго времени суток. Столкнулся с затруднительной ситуацией. Её подробное описание: существует форма отправки на сервер авторизационных данных пользователя. На стороне сервера они обрабатываются функцией, которая делает запрос к базе данных на вывод идентификатора пользователя, идентичного полученному логину и паролю. В случае удачной выборки, идентификатор добавляется в сессионную куку. Затем пользователь перенаправляется на страницу, которая осуществляет AJAX - запрос на сервер для вывода списка доступных модулей. Помимо доступных модулей, сервер присылает установленное в файле .htaccess время сессии, посредством функции ini_get("session.gc_maxlifetime"). Основываясь на присланной информации о времени жизни сессии, на стороне клиента запускается функция, которая с указанным временным интервалом + дополнительные пять секунд, отправляет на сервер AJAX - запрос на проверку присутствия в массиве $_SESSION идентификатора пользователя. В качестве ответных данных сервер шлёт единицу (если идентификатор найден) или ноль (в противном случае). В зависимости от присланных данных, функция запускает сама себя (если в ответе пришла единица), или выводит на экран модальное окно авторизации (в противном случае).
Содержимое файла .htaccess:
Насколько я знаю, вызов уборщика устаревших сессионных кук осуществляется по формуле - php_value session.gc_probability / php_value session.gc_divisor. Также знаю, что если один сервер обрабатывает запросы с нескольких сайтов, то сессии обновляются. Чтобы решить данную проблему надо сменить директорию для сессий. Но мой случай не подходит, так как запросы осуществляет только один сайт.
Вопрос: что в данной ситуации мне ещё необходимо сделать, чтобы сессия удалялась в назначенное для неё время ?
1. С функцией preg_replace необходимого результата, в моей ситуации, можно добиться быстрее, так как удаление ненужных цифр и букв будет осуществляться в цикле. Моя ошибка, неполностью описал обстановку.
2. Данные, подходящие под шаблон поиска присутствуют в каждой строке. (Добавление)
EuGen пишет:
Оно же через substr, но если строка пустая, то правильнее все же проверять концевые [ и ] через ltrim/rtrim
Большое спасибо за помощь. Всё никак не доберусь до плотного изучения регулярных выражений.
Доброго времени суток. Возникла затруднительная ситуация. Есть строка следующего содержания - "[1] текст 2011". Подскажите, каким образом можно удалить всё, кроме [1] ?
Мелкий как всегда всё сказал но я дополню
из описания trim()
Это всё моя невнимательность. При удалении всех пробелов из строк, функция array_unique() всё таки сделала то, что я хотел увидеть. После того, как я заменил все пробелы на видимый символ - "подводные камни" всплыли на поверхность и проблема разрешилась. Огромное СПАСИБО Вам за потраченное на меня время и нервы
$res = $var <<6;-"Сдвиг влево". Все биты переменной $a сдвигаются на $b позиций влево (каждая позиция подразумевает "умножение на 2")
$res= ~ $res;-"Отрицание". Устанавливаются те биты, которые не установлены в $a, и наоборот.
$res=$res ^ 63662419;-"Исключающее или". Устанавливаются только те биты, которые установлены либо только в $a, либо только в $b, но не в обоих одновременно.
$res=$res>> 6; - "Сдвиг вправо". Все биты переменной $a сдвигаются на $b позиций вправо (каждая позиция подразумевает "деление на 2")
Возможно это и есть \n или \r или табуляция их должна удалить trim()
Должна, но почему то не удалила, так как после её применения длинна строк не изменилась.
OrmaJever пишет:
идентичный на взгляд не значит идентичных. Например "С" и "C" на вид одинаковые? Только одна руская а вторая англиская, для человека безразницы а для програмы абсолютно другой символ. Ну и кодировка тоже может внести свой вклад
Это я понимаю Просто все повторяющиеся значения берутся из одной и той же строки таблицы базы данных. Поэтому вариант с одинаковым "внешним видом" символов отпадает. Кодировка базы данных - UTF8, также как и страница, на которую выводится информация. Меня больше беспокоит - по какой причине функция array_unque() не удаляет повторные значения в массиве, когда они полностью идентичны ? Если честно - не думал, что с такой функцией могут возникнуть такие трудности.
Вот здесь надо внимательно сравнить значения и количество символов. Если после array_unique масив не изменился значит там нету повторяющихся елементов, там могуб быть пробелы или \n например
Извиняюсь, что ввёл Вас в заблуждение. Когда перебирал возможные варианты решения проблемы - удалил из результата запроса к базе данных символ ";" и забыл за это. После исправления, функция
показала, что в некоторых, на первый взгляд одинаковых строках присутствует разница в один символ. Также она показала и одинаковое количество символов в идентичных по содержанию строках, которые остались нетронутыми после применения функции
Пытался выразить благодарность за помощь в решении проблемы, но не получилось, так как у меня ещё мало сообщений. С этим всё понятно, только вот ответ с сервера пришёл неполноценный, если исходить из выведенного firebug'om JSON - сообщения - ", количество сообщений оставленных Вами на форуме, недостаточно для данной операции.". Учитывая, что в начале предложения стоит запятая, то нетрудно догадаться, что перед ней должен быть мой ник-name