Передача нескольких значений для одной и той же переменной GET в URL - PullRequest
2 голосов
/ 30 марта 2012

Мне интересно, есть ли более чистый способ передачи нескольких переменных в запросе GET, чем следующий:

http://www.mysite.com/somepage?tags[]=one&tags[]=two&tags[]=three

Я думал о следующем:

http://www.mysite.com/somepage?tags=one,two,three

Затем используйте explode() для их разделения.

Интересно, видел ли кто-нибудь или использовал лучшее решение?

Ответы [ 4 ]

3 голосов
/ 30 марта 2012

Использование explode() надежно только в том случае, если значения каждого тега никогда не будут содержать строку, которую вы взорвали (в данном случае ",").

Iсказал бы, что безопаснее использовать tags[]=X&tags[]=Y.

1 голос
/ 30 марта 2012

вы можете urlencode (json_encode (yourData)), затем на сервере json_decode

это решение будет работать с любыми сложными данными, которые вам, возможно, понадобится передать, а не только с простыми, которые у вас есть.

0 голосов
/ 30 марта 2012

Я предлагаю использовать mod_rewrite для перезаписи, например www.website.com/tags/tag1-tag2-tag3, или если вы хотите использовать только php www.website.com/tags.php?tags=tag1-tag2-tag3. Использование '-' делает его удобным для поиска (поскольку теги часто полезны), а также не так часто используется как запятая (думая о самом тегировании).

0 голосов
/ 30 марта 2012

Я думаю, что лучшее решение - это json_encode(). Но если вы хотите выглядеть красиво (как одна строка). Вы можете зашифровать код, чтобы он выглядел как page?tags=HuH&ITBHjYF86588gmjkbkb. Проще всего это сделать

$tags = base64_encode(json_encode($tags_array));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...