|
|
|
| Есть 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:18)
| | Вопрос снят | |
|
|
|
|
|
|
|
для: Ru
(03.08.2007 в 12:18)
| |
$in = array("'index.php\?sv=cc&par1=([a-zA-Z0-9_\/-]*)'");
$out = array("cc/$1/");
|
| |
|
|
|
|
|
|
|
для: 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_\/-]*)" обратный слэш "\" обязательно ставить? А товроде и без него работает.
Спасибо. | |
|
|
|
|
|
|
|
для: Ru
(03.08.2007 в 14:12)
| | Ну вообще желательно, это просто экранирует прямой слеш | |
|
|
|
|
|
|
|
для: Faraon
(03.08.2007 в 14:18)
| | Да ну?
А почему ж тогда без него работает? | |
|
|
|
|
|
|
|
для: Trianon
(03.08.2007 в 22:03)
| | Ди а без обратного слеша все будет работать, ведь само выражение не в слешы заключено... | |
|
|
|