Получить значения из URL-адреса в стек переполнения

Мне нужно получить идентификаторы из URL:

http://www.aaaaa/galery.php?position=kosice&kategory=Castles&ID=1&ID=5&ID=24&ID=32

Если я использую $_GET['ID'] все еще получают только последнее значение идентификатора. Мне нужно получить их все в массив или выбрать.

Кто-нибудь может мне помочь?

0

Решение

Использовать синтаксис массива:

 http://www.aaaaa/galery.php?position=kosice&kategory=Castles&ID[]=1&ID[]=5&ID[]=24&ID[]=32

var_dump($_GET['ID']);

array(4) {
[0]=>
int(1)
[1]=>
int(5)
[2]=>
int(24)
[3]=>
int(32)
}
}

echo $_GET['ID'][2]; // 24
6

Другие решения

Формат в URL неверный. Второй «ID» перезаписывает первый «ID» .. используйте массив:

http://www.example.org/?id[]=1&id[]=2&id[]=3

В PHP:

echo $_GET['id'][0]; // 1
echo $_GET['id'][1]; // 2
echo $_GET['id'][2]; // 3
5

Чтобы получить это, вам нужно сделать идентификатор в виде массива и передать его в URL

HTTP: //www.aaaaa/galery.php положение = Kosice&kategory = Замки&ID [] = 1&ID [] = 5&ID [] = 24&ID [] = 32
и этим можно манипулировать на бэкэнде вот так

$urls = $_GET['ID'];
foreach($urls as $url){
echo $url;
}

ИЛИ ЖЕ

Альтернативой может быть передача кодированных в JSON массивов.

HTTP: //www.aaaaa/galery.php положение = Kosice&kategory = Замки&ID = [1,2,24,32]

который можно использовать как

$myarr = json_decode($_GET['ID']); // array(1,2,24,32)

Я рекомендую вам также увидеть это здесь.
http_build_query ()

1

это неправильно, но если вы действительно хотите это сделать

<?php

function getIds($string){
$string = preg_match_all("/[ID]+[=]+[0-9]/i", $string, $matches);

$ids = [];

foreach($matches[0] as $match)
{
$c = explode("=", $match);
$ids [] = $c[1];
}

return $ids;
}// you can change this with $_SERVER['QUERY_STRING']
$url = "http://www.aaaaa/galery.php?position=kosice&kategory=Castles&ID=1&ID=5&ID=24&ID=32";

$ids = getIds($url);var_dump($ids);
0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector