web-dev-qa-db-fra.com

Analyser la chaîne de requête dans un tableau

Comment puis-je transformer un chaîne ci-dessous en un tablea?

pg_id=2&parent_id=2&document&video 

C'est le tableau que je cherche,

array(
    'pg_id' => 2,
    'parent_id' => 2,
    'document' => ,
    'video' =>
)
178
laukok

Vous voulez la fonction parse_str et vous devez définir le deuxième paramètre pour que les données soient placées dans un tableau plutôt que dans des variables individuelles.

_$get_string = "pg_id=2&parent_id=2&document&video";

parse_str($get_string, $get_array);

print_r($get_array);
_
303
Anthony

Parfois, parse_str() seule est exacte, il peut afficher par exemple:

$url = "somepage?id=123&lang=gr&size=300";

parse_str () renverrait:

Array ( 
    [somepage?id] => 123 
    [lang] => gr 
    [size] => 300 
)

Il serait préférable de combiner parse_str() avec parse_url() comme suit:

$url = "somepage?id=123&lang=gr&size=300";
parse_str( parse_url( $url, PHP_URL_QUERY), $array );
print_r( $array );
55
yassine2020

Utilisation de parse_str() .

$str = 'pg_id=2&parent_id=2&document&video';
parse_str($str, $arr);
print_r($arr);
30
Rocket Hazmat

Utilisez http://us1.php.net/parse_str

Attention, son utilisation est:

parse_str($str, &$array);

ne pas

$array = parse_str($str);
18
Ionut Bajescu

Si vous rencontrez des problèmes pour convertir une chaîne de requête en tableau en raison de l'esperluette codée

&

puis assurez-vous d'utiliser html_entity_decode

Exemple:

// Input string //
$input = 'pg_id=2&parent_id=2&document&video';

// Parse //
parse_str(html_entity_decode($input), $out);

// Output of $out //
array(
  'pg_id' => 2,
  'parent_id' => 2,
  'document' => ,
  'video' =>
)
15
Casper Wilkes

Il existe plusieurs méthodes possibles, mais pour vous, il existe déjà une fonction intégrée fonction parse_str]

$array = array();
parse_str($string, $array);
var_dump($array);
13
KingCrunch

Ceci est une procédure unique pour analyser la requête de l'URL actuelle dans un tableau:

parse_str($_SERVER['QUERY_STRING'], $query);
3
hovado

Vous pouvez utiliser la chaîne PHP _ parse_str() suivie de la boucle foreach.

$str="pg_id=2&parent_id=2&document&video";
parse_str($str,$my_arr);
foreach($my_arr as $key=>$value){
  echo "$key => $value<br>";
}
print_r($my_arr);
1
user8241064