[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: слэши в адресной строке
arogorns
Гутен таг всем.

Вот какой вопросик родился. На сайте адреса конкретной страницы формируется из айдишника товара и его описания. Так вот несколько этих описаний внутри себя содержат слеш (А 11 111/АВС)

Как это лучше всего обходить? менять символ на что-тот иное? или можно как -то еще решить?
Игорь_Vasinsky
если чпу - та канешь реплейсь или urlencode()
а если нет чпу - то пофигу

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
arogorns
чпу как раз и строю.

а urlencode другие слэши не заденет?
Игорь_Vasinsky
так ты тока значения параметров енкодь)

$url = 'http://site.com/?param='.urlencode('А 11 111/АВС').'&page=2';


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
DragonNoir
Один из распространенных методов - это замена всех не буквенно-цифровых символов на знак "_". Тогда твой ЧПУ будет выглядеть как
http://site.com/А_11_111_АВС

И желательно всё это дело привести к нижнему регистру

_____________
- Сколько тебе надо времени на задачу?
- Месяц.
- А если дам тебе помощника?
- Тогда два месяца.
Игорь_Vasinsky
Цитата
это замена всех не буквенно-цифровых символов на знак "_". Тогда твой ЧПУ будет выглядеть как

а как потом преобразовать такое

А_11_111/АВС

если ты его сделаешь таким

А_11_111_АВС

?

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
DragonNoir
Как правило, каждый элемент ЧПУ соответствует одной сущности. Поэтому очень часто этот элемент хранится вместе с сущностью в БД, что исключает необходимость постоянных преобразований.

_____________
- Сколько тебе надо времени на задачу?
- Месяц.
- А если дам тебе помощника?
- Тогда два месяца.
Игорь_Vasinsky
DragonNoir
это что по твоему ответ на мой вопрос?

в базе лежит

id | А_11_111/АВС

ты его сделаешь таким

А_11_111_АВС

потом прочитаешь его и strtrt()

$search = strtr($_GET['param'], array('_'=>'/'));

и будешь в базе искать А/11/111/АВС

и много ты там сущностей повытаскиваешь, как правило?

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
DragonNoir
Игорь_Vasinsky

В базу пишут не "А 11 111/АВС", а "А_11_111_АВС". И при формировании ЧПУ берут уже его. Товар также ищут по этому значению.

Цитата (arogorns @ 30.03.2016 - 11:22)
На сайте адреса конкретной страницы формируется из айдишника товара и его описания.


ИМХО, это избыточность, т.к. достаточно айдишника, но он не информативен.

_____________
- Сколько тебе надо времени на задачу?
- Месяц.
- А если дам тебе помощника?
- Тогда два месяца.
arogorns
Цитата (DragonNoir @ 30.03.2016 - 17:08)
Игорь_Vasinsky

В базу пишут не "А 11 111/АВС", а "А_11_111_АВС". И при формировании ЧПУ берут уже его. Товар также ищут по этому значению.

Цитата (arogorns @ 30.03.2016 - 11:22)
На сайте адреса конкретной страницы формируется из айдишника товара и его описания.


ИМХО, это избыточность, т.к. достаточно айдишника, но он не информативен.

в базе как раз стоит А 11 111/АВС, и менять мне это никто не даст
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.