Старый 23.11.2009, 19:39   #1
Специалист
 
Регистрация: 23.05.2007
Сообщений: 310
Вес репутации: 213
avgaz скоро станет известенavgaz скоро станет известен
По умолчанию Что не так в preg_replace??

Столкнулся с таким вопросом есть в БД ссылки вида
/index.php?name=gallery
/index.php?name=news
и тд
нужно заменить на вид
gallery.html
news.html
и тд
делаю так
$row['url'] = preg_replace('/index\.php\?name=([a-z_-])/', "\\1.html" , $row['url']);
на выходе почему то получаю такой вид
g.htmlallery
n.htmlews
где ошибка????
avgaz вне форума   Ответить с цитированием
Старый 23.11.2009, 19:40   #2
Хитрый жук
 
Аватар для Алексей Барыкин
 
Регистрация: 05.12.2007
Адрес: Конаково
Сообщений: 2,987
Вес репутации: 389
Алексей Барыкин - прекрасное будущееАлексей Барыкин - прекрасное будущееАлексей Барыкин - прекрасное будущееАлексей Барыкин - прекрасное будущееАлексей Барыкин - прекрасное будущееАлексей Барыкин - прекрасное будущееАлексей Барыкин - прекрасное будущееАлексей Барыкин - прекрасное будущееАлексей Барыкин - прекрасное будущееАлексей Барыкин - прекрасное будущееАлексей Барыкин - прекрасное будущее
По умолчанию

$row['url'] = preg_replace('/index\.php\?name=([a-z_-])+/', "\\1.html" , $row['url']);
__________________
taurion.ru | adminbook.ru | indesignbook.ru
Алексей Барыкин вне форума   Ответить с цитированием
Старый 23.11.2009, 19:43   #3
Специалист
 
Регистрация: 23.05.2007
Сообщений: 310
Вес репутации: 213
avgaz скоро станет известенavgaz скоро станет известен
По умолчанию

Цитата:
Сообщение от Алексей Барыкин Посмотреть сообщение
$row['url'] = preg_replace('/index\.php\?name=([a-z_-])+/', "\\1.html" , $row['url']);
В этом случае в обще замена не происходит
avgaz вне форума   Ответить с цитированием
Старый 23.11.2009, 19:45   #4
Мне повезёт!
 
Аватар для Alexey
 
Регистрация: 05.05.2007
Сообщений: 1,076
Вес репутации: 276
Alexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущее
По умолчанию

Плюсег внутрь скобочки - ([a-z_-]+) сделайте
__________________
Everything will be great in the end.
If it's not great, it's not the end.
Alexey вне форума   Ответить с цитированием
Старый 23.11.2009, 19:47   #5
JS Developer
 
Аватар для Regent
 
Регистрация: 10.04.2008
Адрес: Виргинские острова
Сообщений: 1,093
Вес репутации: 247
Regent - прекрасное будущееRegent - прекрасное будущееRegent - прекрасное будущееRegent - прекрасное будущееRegent - прекрасное будущееRegent - прекрасное будущееRegent - прекрасное будущееRegent - прекрасное будущееRegent - прекрасное будущееRegent - прекрасное будущееRegent - прекрасное будущее
Отправить сообщение для Regent с помощью ICQ
По умолчанию

$row['url'] = preg_replace('/index\.php\?name=([a-z_-]+)/', "\\1.html" , $row['url']);

Добавлено через 38 секунд
Опередили)

Последний раз редактировалось Regent; 23.11.2009 в 19:47. Причина: Добавлено сообщение
Regent вне форума   Ответить с цитированием
Старый 23.11.2009, 20:20   #6
Специалист
 
Регистрация: 23.05.2007
Сообщений: 310
Вес репутации: 213
avgaz скоро станет известенavgaz скоро станет известен
По умолчанию

Цитата:
Сообщение от Alexey Посмотреть сообщение
Плюсег внутрь скобочки - ([a-z_-]+) сделайте
Спасибо..

Добавлено через 28 минут
Возник ещё вопрос как обозначть переменой корень сайта
к примеру счас так
$PATH = "./";
require $PATH."site/include/functions.php";
все нормально но если для страницы с адресом /index.php?name=news&op=show
но если с помощью ЧПУ изменить адрес на /news/show/ то перемена $PATH указывает путь не от корня а от папки /news/show/
Вот вопрос как обозначит $PATH что бы из любого адреса вложенности путь был от корня сайта??

Последний раз редактировалось avgaz; 23.11.2009 в 20:20. Причина: Добавлено сообщение
avgaz вне форума   Ответить с цитированием
Старый 23.11.2009, 20:26   #7
Новичок
 
Аватар для stasilok
 
Регистрация: 13.11.2009
Адрес: Riga
Сообщений: 85
Вес репутации: 178
stasilok - весьма и весьма положительная личностьstasilok - весьма и весьма положительная личность
Отправить сообщение для stasilok с помощью ICQ
По умолчанию

$_SERVER['DOCUMENT_ROOT']
stasilok вне форума   Ответить с цитированием
Старый 23.11.2009, 20:33   #8
Специалист
 
Регистрация: 23.05.2007
Сообщений: 310
Вес репутации: 213
avgaz скоро станет известенavgaz скоро станет известен
По умолчанию

Цитата:
Сообщение от stasilok Посмотреть сообщение
$_SERVER['DOCUMENT_ROOT']
Это да можно но для шаблона картинки получаются с адресом диска и не открываются
avgaz вне форума   Ответить с цитированием
Старый 23.11.2009, 21:50   #9
Эксперт
 
Аватар для extruder
 
Регистрация: 27.03.2009
Сообщений: 1,239
Вес репутации: 235
extruder - прекрасное будущееextruder - прекрасное будущееextruder - прекрасное будущееextruder - прекрасное будущееextruder - прекрасное будущееextruder - прекрасное будущееextruder - прекрасное будущееextruder - прекрасное будущееextruder - прекрасное будущееextruder - прекрасное будущееextruder - прекрасное будущее
По умолчанию

Корень сайта - это всегда "/".
Все урлы, и в том числе картиночные, должны плясать именно от этого.

А путь к служебным файлам - это не урл.
Это именно внутренние каталоги на сервере.

То есть, урл и путь к служебным файлам - это разные вещи.

Поэтому для доступа к файлам при помощи разных там реквайров используй $_SERVER['DOCUMENT_ROOT'].
А для формирования урлов используй "/".
extruder вне форума   Ответить с цитированием
Старый 24.11.2009, 17:00   #10
Специалист
 
Регистрация: 23.05.2007
Сообщений: 310
Вес репутации: 213
avgaz скоро станет известенavgaz скоро станет известен
По умолчанию

Цитата:
Сообщение от extruder Посмотреть сообщение
Корень сайта - это всегда "/".
Все урлы, и в том числе картиночные, должны плясать именно от этого.

А путь к служебным файлам - это не урл.
Это именно внутренние каталоги на сервере.

То есть, урл и путь к служебным файлам - это разные вещи.

Поэтому для доступа к файлам при помощи разных там реквайров используй $_SERVER['DOCUMENT_ROOT'].
А для формирования урлов используй "/".

Я наверно плохо изъяснился е примеру есть файл index.php через него подключаются модули в cms и урлы имеют вид. http://testcms/index.php?nema=news&op=news_show
я делаю ЧПУ заменяю урл на http://testcms/news/news_show то все весь шаблон в сайте с ежает не отображаются картинки и css и тд т.к они пытаются открытся относительно каталога news_show а должны с корня если же сделать ЧПУ такого вида http://testcms-news-news_show.html то все нормально вот мне и нужно переменую
$PATH = "./"; которая в index.php сделать универсальной
avgaz вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PHP. Прошу помочь с preg_replace... MonAmur Разработка и сопровождение сайтов 2 09.10.2009 17:24


Часовой пояс GMT +3, время: 15:34.