2012-04-18 12 views
3

stackoverflow.com/?id=stack 

<?php 
    echo $_GET['id']; 
    //output: stack 
?> 

しかし、URLは次のようであるならば、私は$ _GET要求を取得する方法を知っていただきたいと思います:

stackoverflow.com/?stack 

<?php 
    echo ??? 
    //output: stack 
?> 

お知らせ/?以降の内容は動的に変更されます。

+0

おそらく、URLの書き換えであるmod_rewriteをチェックアウトしてください。 '' stack?= Array([stack] =>) 'の 'print_r($ _ GET)'から出力された –

答えて

3

あなたは$_SERVER['QUERY_STRING']

2

あなたはこのように$ _GETのすべての値を取得できます。

<?php 
foreach($_GET as $key => $value){ 
// $key = 'stack'; 
// $value = ''; 
} 

しかし、あなたはは、値が適切に彼らのために、アプリケーションとコードが可能であるかを知る必要があります。

+0

@phihag、 – 0b10011

+0

すみません、 – phihag

2
<?php 
$key = 'stack'; 
echo array_key_exists($key, $_GET) ? $key : NULL; 
?> 

で全体のクエリ文字列(の未解析)を取得することができます私はあなたのコメントに気づい:/後

お知らせそのコンテンツを?動的に変更されます。

あなただけのクエリ文字列に表示されます何を使用して動的に何かをしたい場合は、$_GETをループまたは$_SERVER[ 'QUERY_STRING' ]へのアクセスに関する他の答えは(本当に何をやっているによって異なります)より良いあなたに合うかもしれません。そのような状況のための別の可能性は、あなたがURLに関する多くの情報を取得するために$_SERVERを使用することができますarray_keys($_GET)

+0

リクエスト '?stack'に対して' $ _GET'は空です。また、 '' ''の代わりに' 'NULL''をデフォルトにするのはなぜですか? – phihag

+0

'$ _GET'はそのリクエストでは空ではありません。キー' stack'と空文字列の値を持つ要素が挿入されます。 msgstr "" "また、なぜ" '"ではなくNULLにするのですか?特にこの場合は問題ありません。 NULLは文字列に変換されます(この場合は空文字列)。 – JMM

+0

おっと、あなたは大丈夫です。私は何とかテストを台無しにしたに違いない。それにもかかわらず、この変形は 'key = 'x &y';' – phihag

2

で、

$_SERVER['QUERY_STRING']; 
$_SERVER['REQUEST_URI']; 
2

$_SERVER['QUERY_STRING']ようにあなたが探している値が含まれています。試してください:

<?php 
echo $_SERVER['QUERY_STRING']; 
2

null値の場合、$ _GET ['stack']になります。

スーパーグローバルな$ _GET配列があります。私はphp.netでそれをチェックすると助けになると信じています。

http://localhost/?stack

コード:

<?php 
echo var_dump($_GET); 

出力:

array(1) { 
    ["stack"]=> 
    string(0) "" 
} 
2

はあなただけ$_GETの内容を通過し、内部に何があるか見ることができます。あなたのケースでは、stackは値として空の文字列のキーになります。

さらに、parse_urlを使用し、結果にqueryキーをチェックすることができます。これは、他の回答に記載されている$_SERVER['QUERY_STRING']と同じです。

しかし、あなたが達成しようとしていることを説明した場合は、多分もっと役立つでしょう。

2
<?php 
$d = array_keys($_GET); 
echo array_shift($d); 
?>