Как отправить значения массива через URL в PHP? - PullRequest
3 голосов
/ 22 июня 2010

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

У меня есть массив идентификаторов продуктов, я хочу использовать эти идентификаторы через url, потому что это нужно osCommerce, в котором я работаю, как я могусделать это?

Обычно osCommerce запрашивает одну вставку продукта, которая, в свою очередь, возвращает мне идентификатор продукта, который я передаю в URL-адрес и получаю его в корзине, где мне показывают этот добавленный продукт, но теперь у меняНа первой странице добавлено несколько продуктов с разными сгенерированными идентификаторами продуктов, и я должен отображать эти продукты так же, как они отображаются в общих чертах, для чего мне понадобятся все эти сгенерированные идентификаторы здесь в URL

Ответы [ 7 ]

9 голосов
/ 22 июня 2010

Вы ищете 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
7 голосов
/ 22 июня 2010

? Обры [] = а и обры [] = PQR и обры [] = хуг и обры [] = ххй

3 голосов
/ 22 июня 2010

хорошо, что я хотел бы сделать, это json_encode ( php json ) массив и присвоить его переменной в php. затем вы можете urlencode переменную, чтобы отправить ее через URL. На другом конце вы можете json_decode. Ищите JSON, если вы не знаете об этом. хотя он очень мощный и полезный.

1 голос
/ 22 июня 2010

Вы можете либо serialize(), либо отправить его как ?a[]=1&a[]=val2&someOtherArg=val.Это даст массив $_GET, такой как:

array(
    'a' => array(
        0 => '1',
        1 => 'val2',
    ),
    'someOtherArg' => 'val'
)

Обратите внимание, однако, что вы, вероятно, должны держать весь свой запрос ниже ~ 2k символов.( 1010 * более *)

0 голосов
/ 22 июня 2010

Если у вас уже есть идентификаторы продуктов в массиве, вы можете использовать функцию http_build_query(), которая будет кодировать массив следующим образом:

http://www.example.com/?pid[]=1&pid[]=2&pid[]=3 ...

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

0 голосов
/ 22 июня 2010

Этого должно быть достаточно, чтобы закодировать их следующим образом:

http://your.url/page.php?myArray[0]=val1&myArray[1]=val2

0 голосов
/ 22 июня 2010

Если вы используете 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']);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...