Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Преобразование url
 
 автор: Ru   (03.08.2007 в 12:18)   письмо автору
 
 

Есть url.
есть один передаваемый параметр, данные беруться из mysql он может быть такого вида: par1=dd/mm (он также может быть и таким: part1=dd_dd/mm-mm/yyyy т.е. содержать: _ - и не известно сколько слешей.
Вот url:
index.php?sv=cc&par1=dd/mm
его надо преобразовать в cc/dd/mm/ (либо в зависимости от значения cc/dd_dd/mm-mm/yyyy/)

делаю так:

<?php

$in 
= array("'index.php\?sv=cc&par1=([a-zA-Z0-9_-]*)'");
$out = array("cc/\\1/");
preg_replace($in$out$url)

?>


Правило для .htaccess:
RewriteRule ^cc/(.*)/ index.php?sv=cc&part1=$1

Получается cc/dd//mm. Куда-то пропадает последний слешь, но появляется между dd и mm лишний. Наверное как-то надо в рег. выражении пропускать ещё и слэшь, подскажите пожалуйста.

   
 
 автор: Ru   (03.08.2007 в 12:29)   письмо автору
 
   для: Ru   (03.08.2007 в 12:18)
 

Вопрос снят

   
 
 автор: Faraon   (03.08.2007 в 12:33)   письмо автору
 
   для: Ru   (03.08.2007 в 12:18)
 


$in = array("'index.php\?sv=cc&par1=([a-zA-Z0-9_\/-]*)'");
$out = array("cc/$1/");

   
 
 автор: Ru   (03.08.2007 в 14:12)   письмо автору
 
   для: Faraon   (03.08.2007 в 12:33)
 


$in = array("'index.php?sv=cc&par1=([a-zA-Z0-9_\/-]*)'");
$out = array("cc/$1/");


а здесь "([a-zA-Z0-9_\/-]*)" обратный слэш "\" обязательно ставить? А товроде и без него работает.

Спасибо.

   
 
 автор: Faraon   (03.08.2007 в 14:18)   письмо автору
 
   для: Ru   (03.08.2007 в 14:12)
 

Ну вообще желательно, это просто экранирует прямой слеш

   
 
 автор: Trianon   (03.08.2007 в 22:03)   письмо автору
 
   для: Faraon   (03.08.2007 в 14:18)
 

Да ну?
А почему ж тогда без него работает?

   
 
 автор: Sc   (04.08.2007 в 19:31)   письмо автору
 
   для: Trianon   (03.08.2007 в 22:03)
 

Ди а без обратного слеша все будет работать, ведь само выражение не в слешы заключено...

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования