Мне интересно, есть ли более чистый способ передать несколько переменных в запросе GET, чем следующее:
http://www.mysite.com/somepage?tags[]=one&tags[]=two&tags[]=three
Я подумал о следующем:
http://www.mysite.com/somepage?tags=one,two,three
Затем используйте explode()
чтобы отделить их.
Интересно, видел ли кто-нибудь или использовал лучшее решение?
Использование explode()
является надежным только в том случае, если значения каждого тега никогда не будут содержать любую строку, которую вы взрываете (в данном случае «,»).
Я бы сказал, что безопаснее использовать tags[]=X&tags[]=Y
вы можете urlencode (json_encode (yourData)), затем на сервере json_decode
это решение будет работать с любыми сложными данными, которые вам могут понадобиться, а не просто с одним из них.
Я думаю, что лучшим решением является json_encode()
. Но если вы хотите выглядеть красиво (как одна строка). Вы можете кодировать код, чтобы выглядеть как page?tags=HuH&ITBHjYF86588gmjkbkb
. Проще всего это сделать
$tags = base64_encode(json_encode($tags_array));
Я предлагаю использовать mod_rewrite для перезаписи как http://www.website.com/tags/tag1-tag2-tag3 или если вы хотите использовать только php http://www.website.com/tags.php?tags=tag1-tag2-tag3. Использование '-' делает его удобным для поиска (как для тегов часто полезно), а также не так часто используется как запятая (думая о самой маркировке).