RFpro.ru: Программирование на PHP

  Все выпуски  

RusFAQ.ru: Программирование на PHP


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / PHP

Выпуск № 556
от 29.12.2006, 17:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 398, Экспертов: 45
В номере:Вопросов: 3, Ответов: 7


Вопрос № 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 в динамические
#

RewriteRule ^([a-z0-9/]+)?$ test.php?url=$1 [L]
###############################################

Все ссылки которые подподают под условие [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

Отвечает: Барков Илья Андреевич
Здравствуйте, Valeraorg!

Во-первых, символ | как разделитель - распростроненная ошибка. используйте более сложные конструкции. а лучше вообще какой-нибудь юникод, который просто так не ввести с клавиатуры.

Во-вторых, черт с ней с 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.
Отправлен: 24.12.2006, 16:16
Вопрос задал: Адилбаев Жанибек (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: 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 (тоже на английском языке)
Ответ отправил: Бакулин Станислав Анатольевич (статус: 3-ий класс)
Ответ отправлен: 24.12.2006, 19:26

Отвечает: PVS
Здравствуйте, Адилбаев Жанибек!
Все просто: у вас есть пакеты формата microsoft installer - устанавливаются по двойному клику. После их установки сами по себе (отдельно друг от друга) apache и php уже работают. Вам осталось их связать. В папке PHP есть длинная инструкция, но сводится она к одному(вариант дающий максимум возможностей): в файл httpd.conf Apach'a дописать строки:

LoadModule php4_module c:/php4/sapi/php4apache2.dll
AddType application/x-httpd-php .php

А также найти строку

DirectoryIndex index.htm index.html

и добавить к ней index.php (чтобы он распознавался как файл по умолчанию):

DirectoryIndex index.htm index.html index.php

или добавить строки

AddType application/x-httpd-php .htm
AddType application/x-httpd-php .html

и тогда php-скрипты можно будет писать прямо в .html-файлах (никто о наличии php и не догадается)
Ответ отправил: PVS (статус: Специалист)
Ответ отправлен: 25.12.2006, 10:32


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.38 от 20.12.2006
Яндекс Rambler's Top100

В избранное