Вопрос № 68367: Здравствуйте уважаемые эксперты!
Недавно задавал вопрос (http://rusfaq.ru/info/question/68284). Попробую его немного переформулировать.
Я хочу организовать систему навигации посредством ЧПУ. Структура представления документов древовидная, т.е...Вопрос № 68371: Здравствуйте!
Написал скрипт, что-то вроде гостевой книги. Небуду вас грузить и приводить скрипт. Принцип работы очень прост: Данные из формы преобразовываются в одну строку и записываются в текстовый файл через разделительный знак "|"....Вопрос № 68393: Здравствуйте!
Я хочу, изучит РНР и у меня есть файлы "php-5.2.0-win32-installer.msi" и "apache_2.0.55-win32-x86-no_ssl.msi" Помогите, пожалуйста, установит и настроит эти программы в локальный компьютер. У меня ОС WinXP profes...
Вопрос № 68.367
Здравствуйте уважаемые эксперты!
Недавно задавал вопрос (http://rusfaq.ru/info/question/68284). Попробую его немного переформулировать.
Я хочу организовать систему навигации посредством ЧПУ. Структура представления документов древовидная, т.е. есть категории, у них в свою очередь подкатегории и т.д., есть корневая категория.
Например при обращении http://site.com/cat1/cat2/cat3/content должно произойти обращение к документу content категории cat3, которая в свою очередь является подкатегорией cat2 и т.д.
В БД есть две таблицы "контент" и "категории", проверка правильности построения дерева и формирование ссылок на контент производится по этим таблицам.
Так же мне необходимо учесть следующее: если не был обнаружен контент, то производится попытка найти модуль, например, модуль новости: http://site.com/news/2006/12/31/ по элементу news система будет искать модуль, информация о котором должна содержаться в БД. Остальную часть url модуль будет интерпритировать как параметры.
Одним словом мне необходимо получить массив запрошенных элементов:
http://site.com/cat1/cat2/cat3/products/product1
должен получится массив:
request[0] = "cat1"
request[1] = "cat2"
request[2] = "cat3"
request[3] = "products"
request[4] = "product1"
Возможно ли это организовать с помощью mod_rewrite? Если возможно, то каким образом?
Заранее благодарен.
Приложение:
Отправлен: 24.12.2006, 12:08
Вопрос задал: Semen214 (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Cimus
Здравствуйте, Semen214!
Самый простой способ это написать в .htaccess следующее
###############################################
# Запуск mod_rewrite
Options +FollowSymLinks
RewriteEngine on
#
# Внутренние преобразования статических URL в динамические
#
Все ссылки которые подподают под условие [a-z0-9/]+ будут переобразованны в test.php?url=.......
Подробности тут http://apachedev.ru/2006/07/31/mod_rewrite-preobrazovanie-dinamicheskih-url-v-staticheskie/ и тут http://www.egoroff.spb.ru/portfolio/apache/mod_rewrite.html#rewriterule
Приложение:
--------- Достичь можно любых высот !
Ответ отправил: Cimus (статус: 10-ый класс)
Ответ отправлен: 24.12.2006, 16:23 Оценка за ответ: 5 Комментарий оценки: Спасибо то что нужно!
Вопрос № 68.371
Здравствуйте!
Написал скрипт, что-то вроде гостевой книги. Небуду вас грузить и приводить скрипт. Принцип работы очень прост: Данные из формы преобразовываются в одну строку и записываются в текстовый файл через разделительный знак "|". Если данные из формы должным образом не обработать (не преобразовать в одну строку), то скрипт перестает работать.
Собственно вопрос:
Для этой цели обычно текст из формы прогоняют через функцию nl2br(), но у меня она не работает. Она мало того, что заменяет знак перевода строки не на <br> а на <br />, так еще и оставляет знак перевода строки, т.е полностью нарушает работу моего скрипта. Мне приходится пользоватся функцией $mes=str_replace("
", "<br>" , $mes); и тогда все работает.
Прокоментируйте мою замену. Почему неработает у меня классическая функция nl2br().
Отправлен: 24.12.2006, 12:54
Вопрос задал: Valeraorg (статус: 4-ый класс)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Liw
Здравствуйте, Valeraorg!
Почитайте внимательно мануал к функции:
Из мануала:
"nl2br -- Вставляет HTML код разрыва строки перед каждым переводом строки"
т.е она и не должна заменять,
до версии PHP 4.0.5 функция вставляла <br>
а в более поздних <br /> в соответствии со спецификацией XHTML - видимо что бы легче было отличать парные теги от непарных.
Вывод: используйте наздоровье str_replace;
Удачи...
Ответ отправил: Liw (статус: 1-ый класс)
Ответ отправлен: 24.12.2006, 14:40
Во-первых, символ | как разделитель - распростроненная ошибка. используйте более сложные конструкции. а лучше вообще какой-нибудь юникод, который просто так не ввести с клавиатуры.
Во-вторых, черт с ней с nl2br если она такая глупая, используйте обычную замену. А то, что она заменяет на <br /> - это так и есть. Это для w3c-стандарта XHTML, в этом нет ничего страшного.
В-третьих, надеюсь у вас не один data.dat, а записи разбиты по датам. тоесть для каждого дня отдельный файл, а в htaccess есть запрет на их чтение извне.
Ответ отправил: Барков Илья Андреевич (статус: 5-ый класс)
Ответ отправлен: 24.12.2006, 14:41
Вопрос № 68.393
Здравствуйте!
Я хочу, изучит РНР и у меня есть файлы "php-5.2.0-win32-installer.msi" и "apache_2.0.55-win32-x86-no_ssl.msi" Помогите, пожалуйста, установит и настроит эти программы в локальный компьютер. У меня ОС WinXP professional SP2.
Отвечает: Cimus
Здравствуйте, Адилбаев Жанибек!
Вот на этом сайте http://www.manlix.ru/ есть полностью всё что нужно для нормальной работы это PHP, PERL, Apache, MySQL, а вот тут http://www.manlix.ru/zipped/manlix.ru-article0.zip полное описание того как всё это сконфигурировать [1,2 mb]
--------- Достичь можно любых высот !
Ответ отправил: Cimus (статус: 10-ый класс)
Ответ отправлен: 24.12.2006, 16:33
Отвечает: Patron
Здравствуйте, Адилбаев Жанибек!
Я бы рекомендовал вам для начала обучения воcпользоваться денвером (он проще в настройке и установке), последние стабильные версии можно скачать с http://www.denwer.ru/ , там же есть документация.
Ответ отправил: Patron (статус: 1-ый класс)
Ответ отправлен: 24.12.2006, 17:37
Для начала Вы можете попробовать установить такие комплекты, как AppServ или Denwer. В состав каждого из этих комплектов входят PHP, Apache, MySQL, PHPMyAdmin(какой из них устанавливать решйте сами). Я лично пользуюсь первым - AppServ
Скачать AppServ можно с http://sourceforge.net/project/showfiles.php?group_id=37459&package_id=29748
Скачать Denwer можно с http://www.denwer.ru/
Про то как устанавливать Apache под Windows можете прочитать на http://httpd.apache.org/docs/2.0/platform/windows.html (на английском языке)
Материалы по установке PHP под Windows Вы сможете найти на http://ru.php.net/manual/ru/install.windows.php#install.windows.installer (тоже на английском языке)
Отвечает: PVS
Здравствуйте, Адилбаев Жанибек!
Все просто: у вас есть пакеты формата microsoft installer - устанавливаются по двойному клику. После их установки сами по себе (отдельно друг от друга) apache и php уже работают. Вам осталось их связать. В папке PHP есть длинная инструкция, но сводится она к одному(вариант дающий максимум возможностей): в файл httpd.conf Apach'a дописать строки: