как отправить массив через url в PHP?
У меня есть массив идентификаторов продуктов, в которых я хочу использовать этот идентификатор через URL-адрес, потому что для этого нужна osCommerce, в которой я работаю, как я могу это сделать?
Обычно osCommerce запрашивает вставку одного продукта, которая, в свою очередь, возвращает мне идентификатор продукта, который я передаю в URL-адрес, и получаю его в корзине покупок, где показан этот добавленный продукт, но теперь у меня есть несколько продуктов, добавленных на первой странице с разными сгенерированными идентификаторы продуктов, и я должен отображать эти продукты так же, как они отображаются в genaral, для которых мне понадобятся все эти созданные здесь идентификаторы в URL-адресе
Вы ищете http_build_query () .
Пример из php.net:
$data = array('foo'=>'bar', 'baz'=>'boom', 'cow'=>'milk', 'php'=>'hypertext processor'); echo http_build_query($data); // foo=bar&baz=boom&cow=milk&php=hypertext+processor echo http_build_query($data, '', '&'); // foo=bar&baz=boom&cow=milk&php=hypertext+processor
? Обр [] = ABC & обр [] = PQR & обр [] = хуг & обр [] = ххх
ну, что я сделал бы, это json_encode
( php json ) массив и назначить его переменной в php. вы можете затем urlencode
переменную, чтобы отправить ее по URL-адресу. На другом конце вы можете json_decode
. Посмотрите на json, если вы не знаете об этом. его очень мощный и полезный, хотя.
Вы можете либо serialize()
либо отправить его как ?a[]=1&a[]=val2&someOtherArg=val
. Это даст массив $_GET
например:
array( 'a' => array( 0 => '1', 1 => 'val2', ), 'someOtherArg' => 'val' )
Обратите внимание, однако, что вы должны, вероятно, сохранить весь ваш запрос ниже ~ 2k символов. ( больше )
Если вы являетесь POST-данными, затем укажите свои поля с синтаксисом типа массива PHP:
<input type="text" name="myArray[]" value="A"> <input type="text" name="myArray[]" value="B"> <input type="text" name="myArray[]" value="C">
Если вы хотите передать данные в запросе GET, вы можете разделить данные и разделить их на стороне сервера с помощью взрыва:
page.php?myData=A,B,C,D
…
$myArray = explode(',', $_POST['myData']);
Их должно быть достаточно, чтобы закодировать их следующим образом:
HTTP: //your.url/page.php туАггау [0] = знач1 & туАггау [1] = знач2
Если у вас уже есть идентификаторы продуктов в массиве, вы можете использовать http_build_query()
, которая будет кодировать массив следующим образом:
http://www.example.com/?pid[]=1&pid[]=2&pid[]=3 ...
Надеюсь, это поможет.