как отправлять значения массива через url в PHP?

как отправить массив через 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 ...

Надеюсь, это поможет.