I know about this method:
stackoverflow.com/?id=stack <?php echo $_GET['id']; //output: stack ?>
But I would like to know how to get the $ _GET request if the URL looks like this:
stackoverflow.com/?stack <?php echo ??? //output: stack ?>
Note that the content after /?dynamically changes.
/?
You can get an entire query string (unparsed) with $_SERVER['QUERY_STRING']
$_SERVER['QUERY_STRING']
You can get all the values of $ _GET as follows:
<?php foreach($_GET as $key => $value){ // $key = 'stack'; // $value = ''; }
However, you should know what values are possible in your application and in the code for them.
<?php $key = 'stack'; echo array_key_exists( $key, $_GET ) ? $key : NULL; ?>
:
, /? .
- , , , $_GET $_SERVER[ 'QUERY_STRING' ], ( , ). array_keys( $_GET )
$_GET
$_SERVER[ 'QUERY_STRING' ]
array_keys( $_GET )
$_ SERVER, URL-,
$_SERVER['QUERY_STRING']; $_SERVER['REQUEST_URI'];
$_SERVER['QUERY_STRING'] , . :
<?php echo $_SERVER['QUERY_STRING'];
$_GET ['stack'] .
$_GET. , php.net .
http://localhost/?stack
<?php echo var_dump($_GET);
array(1) { ["stack"]=> string(0) "" }
$_GET , . stack .
stack
, parse_url query , $_SERVER['QUERY_STRING'], .
parse_url
query
, , , , .
<?php $d = array_keys($_GET); echo array_shift($d); ?>