3

私はこの方法を知っています:

stackoverflow.com/?id=stack

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

しかし、URLが次のような場合に$_GETリクエストを取得する方法を知りたいです。

stackoverflow.com/?stack

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

後のコンテンツ/?は動的に変更されることに注意してください。

4

8 に答える 8

3

クエリ文字列全体(解析されていない)を取得できます$_SERVER['QUERY_STRING']

于 2012-04-18T17:16:02.043 に答える
2
<?php
$key = 'stack';
echo array_key_exists( $key, $_GET ) ? $key : NULL;
?>

私はあなたのコメントに気づきました:

/?の後のコンテンツに注意してください 動的に変更されます。

クエリ文字列に表示されるものを動的に実行したいだけの場合は、ループオーバー$_GETまたはアクセスに関する他の回答の$_SERVER[ 'QUERY_STRING' ]方が適している可能性があります(実際には何をしているかによって異なります)。そのような状況の別の可能性はarray_keys( $_GET )

于 2012-04-18T17:16:09.613 に答える
2

$ _SERVERを使用して、次のようなURLに関する多くの情報を取得できます。

$_SERVER['QUERY_STRING'];
$_SERVER['REQUEST_URI'];
于 2012-04-18T17:16:16.753 に答える
2

$_SERVER['QUERY_STRING']探している値が含まれています。試す:

<?php
echo $_SERVER['QUERY_STRING'];
于 2012-04-18T17:17:11.310 に答える
2

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

スーパーグローバル$_GET配列があります。php.netでチェックしてみると役立つと思います。

http:// localhost /?stack

コード:

<?php
echo var_dump($_GET);

出力:

array(1) {
  ["stack"]=>
  string(0) ""
}
于 2012-04-18T17:18:35.410 に答える
2

次のように $_GET のすべての値を取得できます。

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

ただし、アプリケーションで可能な値把握し、適切にコーディングする必要があります。

于 2012-04-18T17:15:25.070 に答える
2

の内容を調べて、中身を確認するだけです$_GET。あなたの場合stack、値として空の文字列を持つキーになります。

さらに、結果からキーを使用parse_urlおよび確認できます。これは、他の回答で説明されqueryている使用と同じです。$_SERVER['QUERY_STRING']

しかし、何を達成しようとしているのかを説明していただければ、もっと役立つかもしれません。

于 2012-04-18T17:21:47.953 に答える
2
<?php
$d = array_keys($_GET);
echo array_shift($d);
?>
于 2012-04-18T17:25:35.360 に答える