phpのスーパーグローバル変数+curlコマンド 簡単にまとめてみた
apiを叩きにいくときやajaxのテストなどで生のcurlコマンドを実行することが多かったので簡単にまとめてみました。
php側では対象のスーパーグローバル変数をvar_dumpして出力しているものとします。
$_GET
unix
$ curl "http://test.com/?id=1"
出力
array(1) {
["id"]=>
string(1) "1"
}
$_POST
unix
$ curl "http://test.com/" -X "POST" -F "id=1" -F "name=manato"
出力
array(2) {
["id"]=>
string(1) "1"
["name"]=>
string(6) "manato"
}
$_FILES
unix
$ curl "http://test.com/" -F "[email protected]"
出力
array(1) {
["uploaded_image"]=>
array(5) {
["name"]=>
string(11) "test.jpg"
["type"]=>
string(10) "image/jpeg"
["tmp_name"]=>
string(14) "/tmp/php9Hmedz"
["error"]=>
int(0)
["size"]=>
int(234601)
}
}
コマンドを実行したディレクトリに画像がなかったりファイル名が間違っているとこんなエラーが出ました。
curl: (26) couldn't open file "test.jpg"
$_COOKIE
unix
$ curl "http://test.com/" -H 'Cookie: user_id=1'
出力
array(1) {
["user_id"]=>
string(1) "1"
}
$_SERVER
unix
$ curl "http://test.com/" -H 'token: testtest'
出力
array(29) {
(省略)
["HTTP_TOKEN"]=>
string(8) "testtest"
}
curlコマンドのオプション-Hはヘッダー情報を付加できますが
それをphp側で受け取るには$_SERVER['HTTP_XXX']で取得できるようです。(XXXは指定した文字列の大文字)
なので上の例だとHTTP_TOKEN
となります。
また、$_COOKIE
のコマンドを打った際もvar_dump($_SERVER)の結果はこうなっていました。
出力
array(29) {
(省略)
["HTTP_COOKIE"]=>
string(10) "userid=78C"
}
ヘッダー情報の一つなので$_SERVERにも入っているということですね。
まとめ
上から順に$_GET
, $_POST
, $_FILES
, $_COOKIE
, $_SERVER
のコマンドです。
$ curl "http://test.com/?id=1"
$ curl "http://test.com/" -X "POST" -F "id=1" -F "name=manato"
$ curl "http://test.com/" -F "[email protected]"
$ curl "http://test.com/" -H 'Cookie: user_id=1'
$ curl "http://test.com/" -H 'token: testtest'
-Hオプションの結果は$_SERVER['HTTP_任意の文字列大文字']で取得可能。
$ curl "http://test.com/" -H 'age: 20'
echo $_SERVER_['HTTP_AGE']; // => 20
以上、簡単にcurlコマンドについてまとめました。
Author And Source
この問題について(phpのスーパーグローバル変数+curlコマンド 簡単にまとめてみた), 我々は、より多くの情報をここで見つけました https://qiita.com/manato0119/items/1e3eb38a0b7618ea39da著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .