2015-11-04 1 views
-1

Я отправляю данные, используя заголовок в php через этот код.Как получить значение php-массива из URL-адреса?

$msg = array("A", "B", "C"); 
header("Location: search.php?sms=".$msg); 

и мой URL является:

localhost/search.php?sms=Array 

Как получить данные смс как массив в search.php файле

+0

вы можете использовать 'implode' для отправки и' explode' для декодирования на другом конце – RamRaider

ответ

1

Вы можете использовать serialize и unserialize PHP функцию. Это не очень хорошая практика отправки необработанного массива в url.

$msg = array("A", "B", "C"); 
header("Location: search.php?sms=".serialize($msg)); 

search.php в

$msg = unserialize($_GET['sms']); 

Вы также можете использовать форматы JSON.

json encode при отправке и json decode после получения.

$msg = array("A", "B", "C"); 
header("Location: search.php?sms=".json_encode($msg)); 

search.php в

$msg = json_decode($_GET['sms']); 
0

При передаче параметра с URL через GET, вы уже умирала его как массив.

Но, как правило, мы передаем его как двухмерный массив.

Мы можем передать его как 3-мерная массив, описанная ниже.

Вы можете передать массив через URL, как это:

search.php?sms[one]=two&sms[two]=three 

Теперь, получить значение $ смс

echo '<pre>'; 
print_r($_GET['sms']); 
echo '</pre>'; 
2

Вы можете использовать http_build_query функцию PHP вроде как

$msg = array("A", "B", "C"); 
echo http_build_query($msg, 'sms_'); 

Выход:

sms_0=A&sms_1=B&sms_2=C 

Итак, наконец, в своем коде вы использовать его как в качестве

header("Location: search.php?".http_build_query($msg, 'sms_')); 

Или сохранить его в переменной вроде как

$sms = http_build_query($msg, 'sms_'); 
header("Location: search.php?$sms"); 
0

Я использовал этот код и он работает:

$arr = array("A", "B", "C"); 
$msg=json_encode($arr); 
header("Location: search.php?sms=".$msg); 

<?php 
if ($_GET['sms']!=null) { 
    $array=$_GET['sms']; 
    $arr=json_decode($array); 
    print_r($arr) ; 
}?> 
+1

Это же, как и мой ответ. –

+0

использовать 'json_decode ($ array, true);' для получения массива в противном случае он будет возвращать объекты. –

0

Отослать данные использовать php implode: -

$msg = implode(',',array("A", "B", "C")); 
header("Location: index.php?sms=".$msg); 

Получить данные с помощью PHP explode: -

$arr=explode(",",$_GET['sms']); 
print_r($arr); 
Смежные вопросы