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