私はこの方法を知っています:
stackoverflow.com/?id=stack
<?php
echo $_GET['id'];
//output: stack
?>
しかし、URLが次のような場合に$_GETリクエストを取得する方法を知りたいです。
stackoverflow.com/?stack
<?php
echo ???
//output: stack
?>
後のコンテンツ/?
は動的に変更されることに注意してください。
クエリ文字列全体(解析されていない)を取得できます$_SERVER['QUERY_STRING']
<?php
$key = 'stack';
echo array_key_exists( $key, $_GET ) ? $key : NULL;
?>
私はあなたのコメントに気づきました:
/?の後のコンテンツに注意してください 動的に変更されます。
クエリ文字列に表示されるものを動的に実行したいだけの場合は、ループオーバー$_GET
またはアクセスに関する他の回答の$_SERVER[ 'QUERY_STRING' ]
方が適している可能性があります(実際には何をしているかによって異なります)。そのような状況の別の可能性はarray_keys( $_GET )
$ _SERVERを使用して、次のようなURLに関する多くの情報を取得できます。
$_SERVER['QUERY_STRING'];
$_SERVER['REQUEST_URI'];
$_SERVER['QUERY_STRING']
探している値が含まれています。試す:
<?php
echo $_SERVER['QUERY_STRING'];
null値の$_GET['stack']になります。
スーパーグローバル$_GET配列があります。php.netでチェックしてみると役立つと思います。
コード:
<?php
echo var_dump($_GET);
出力:
array(1) {
["stack"]=>
string(0) ""
}
次のように $_GET のすべての値を取得できます。
<?php
foreach($_GET as $key => $value){
// $key = 'stack';
// $value = '';
}
ただし、アプリケーションで可能な値を把握し、適切にコーディングする必要があります。
の内容を調べて、中身を確認するだけです$_GET
。あなたの場合stack
、値として空の文字列を持つキーになります。
さらに、結果からキーを使用parse_url
および確認できます。これは、他の回答で説明されquery
ている使用と同じです。$_SERVER['QUERY_STRING']
しかし、何を達成しようとしているのかを説明していただければ、もっと役立つかもしれません。
<?php
$d = array_keys($_GET);
echo array_shift($d);
?>