プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
FuelPHP1.6、Inputクラスの中身を理解する。
FuelPHP1.6、フォームからのパラメータの受け取りを理解する。」で
フォームからパラメータを受け取るメソッド関連、

Input::get():GETパラメータの受け取り($_GETの凄い版)
Input::post():POSTパラメータの受け取り($_POSTの凄い版)
Input::file():FILEの受け取り($_FILEの凄い版)
Input::param():パラメータの受け取り($_GET+$_POST+$_PUTの凄い版)

は理解しました。
せっかくだからInputクラスの他のメソッドも見ておきますかね、というのが今回のテーマです。

と言う訳で早速

fuel/core/classes/input.php

の中を覗いてみたところ、Inputクラスのメソッドは

Input::json():JSON形式の受け取り
Input::xml():XML形式の受け取り
Input::uri():ドキュメントルート以降のURIを取得「http://localhost/c/m」だったら「/c/m」
Input::extension():URIから拡張子を取得?
Input::ip():アクセスしたユーザのグローバルIPを返却
Input::real_ip():「ip()」とほぼ一緒だけど、プロキシサーバ経由の場合は元IPを取得しようと頑張る
Input::protocol():呼び出しに使用されたHTTPプロトコルを返却
Input::is_ajax():該当コントローラがAjaxから呼び出された場合はtrue
Input::referrer():$_SERVERからリファラを取得
Input::method():呼び出しに使用されたHTTPメソッドを返却
Input::user_agent():$_SERVERからユーザエージェントを取得
Input::all():GET、POST、PUT、DELETEをすべて取得
Input::get():GETパラメータの受け取り($_GETの凄い版)
Input::post():POSTパラメータの受け取り($_POSTの凄い版)
Input::put():PUTメソッドで呼び出されたときにphp://inputストリームからパラメータを読み込むらしい
Input::delete():DELETEメソッドで呼び出されたときにphp://inputストリームからパラメータを読み込むらしい
Input::file():FILEの受け取り($_FILEの凄い版)
Input::param():パラメータの受け取り($_GET+$_POST+$_PUTの凄い版)
Input::cookie():COOKIEの読み出し($_COOKIEの凄い版)
Input::server():サーバ変数の取得($_SERVERの凄い版)

だけあるようです。

ふむ(--)
特に難しいところは無さそうですね。
普通にPHPで取得できる値($_SERVER)とかをちょっと便利に?取得できるメソッドと
面倒くさい整形を肩代わりしてくれるメソッド(Input::json()とか)が集まっているようです。

後は実際に動かしてみればOKですかね。

例えば最初に表示するHTMLがこんなのでφ(--)

<form action="./hogep/test07">
    <input type="text" name="text01" value="てすとテキスト">
    <input type="submit" name="s1" value="送信">
</form>

パラメータを受け取るコントローラをこんなのにするとφ(--

public function action_test07()
{
    print "■Input::json()<br>\n";
    var_dump(Input::json());

    print "\n<br><br>■Input::xml()<br>\n";
    var_dump(Input::xml());

    print "\n<br><br>■Input::uri()<br>\n";
    var_dump(Input::uri());

    print "\n<br><br>■Input::extension()<br>\n";
    var_dump(Input::extension());

    print "\n<br><br>■Input::ip()<br>\n";
    var_dump(Input::ip());

    print "\n<br><br>■Input::real_ip()<br>\n";
    var_dump(Input::real_ip());

    print "\n<br><br>■Input::protocol()<br>\n";
    var_dump(Input::protocol());

    print "\n<br><br>■Input::is_ajax()<br>\n";
    var_dump(Input::is_ajax());

    print "\n<br><br>■Input::referrer()<br>\n";
    var_dump(Input::referrer());

    print "\n<br><br>■Input::method()<br>\n";
    var_dump(Input::method());

    print "\n<br><br>■Input::user_agent()<br>\n";
    var_dump(Input::user_agent());

    print "\n<br><br>■Input::all()<br>\n";
    var_dump(Input::all());

    print "\n<br><br>■Input::get()<br>\n";
    var_dump(Input::get());

    print "\n<br><br>■Input::post()<br>\n";
    var_dump(Input::post());

    print "\n<br><br>■Input::put()<br>\n";
    var_dump(Input::put());

    print "\n<br><br>■Input::delete()<br>\n";
    var_dump(Input::delete());

    print "\n<br><br>■Input::file()<br>\n";
    var_dump(Input::file());

    print "\n<br><br>■Input::param()<br>\n";
    var_dump(Input::param());

    print "\n<br><br>■Input::cookie()<br>\n";
    var_dump(Input::cookie());

    print "\n<br><br>■Input::server()<br>\n";
    var_dump(Input::server());
}

それぞれの値を確認できます。
ちなみに私の環境ではこんな結果になりましたφ(--)

■Input::json()<br>
array(0) {
}

<br><br>■Input::xml()<br>
array(1) {
  [0]=>
  bool(false)
}

<br><br>■Input::uri()<br>
string(13) "/hogep/test07"

<br><br>■Input::extension()<br>
NULL

<br><br>■Input::ip()<br>
string(12) "192.0.0.2"

<br><br>■Input::real_ip()<br>
string(12) "192.0.0.2"

<br><br>■Input::protocol()<br>
string(4) "http"

<br><br>■Input::is_ajax()<br>
bool(false)

<br><br>■Input::referrer()<br>
string(40) "http://192.0.0.3/f1.6/test07.html"

<br><br>■Input::method()<br>
string(3) "GET"

<br><br>■Input::user_agent()<br>
string(123) "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.72 Safari/537.36 Sleipnir/4.3.0"

<br><br>■Input::all()<br>
array(2) {
  ["text01"]=>
  string(21) "てすとテキスト"
  ["s1"]=>
  string(6) "送信"
}

<br><br>■Input::get()<br>
array(2) {
  ["text01"]=>
  string(21) "てすとテキスト"
  ["s1"]=>
  string(6) "送信"
}

<br><br>■Input::post()<br>
array(0) {
}

<br><br>■Input::put()<br>
NULL

<br><br>■Input::delete()<br>
NULL

<br><br>■Input::file()<br>
array(0) {
}

<br><br>■Input::param()<br>
array(2) {
  ["text01"]=>
  string(21) "てすとテキスト"
  ["s1"]=>
  string(6) "送信"
}

<br><br>■Input::cookie()<br>
array(0) {
}

<br><br>■Input::server()<br>
array(52) {
  ["REDIRECT_MIBDIRS"]=>
  string(24) "C:/xampp/php/extras/mibs"
  ["REDIRECT_MYSQL_HOME"]=>
  string(16) "\xampp\mysql\bin"
  ["REDIRECT_OPENSSL_CONF"]=>
  string(31) "C:/xampp/apache/bin/openssl.cnf"
  ["REDIRECT_PHP_PEAR_SYSCONF_DIR"]=>
  string(10) "\xampp\php"
  ["REDIRECT_PHPRC"]=>
  string(10) "\xampp\php"
  ["REDIRECT_TMP"]=>
  string(10) "\xampp\tmp"
  ["REDIRECT_STATUS"]=>
  string(3) "200"
  ["MIBDIRS"]=>
  string(24) "C:/xampp/php/extras/mibs"
  ["MYSQL_HOME"]=>
  string(16) "\xampp\mysql\bin"
  ["OPENSSL_CONF"]=>
  string(31) "C:/xampp/apache/bin/openssl.cnf"
  ["PHP_PEAR_SYSCONF_DIR"]=>
  string(10) "\xampp\php"
  ["PHPRC"]=>
  string(10) "\xampp\php"
  ["TMP"]=>
  string(10) "\xampp\tmp"
  ["HTTP_HOST"]=>
  string(12) "192.0.0.3"
  ["HTTP_CONNECTION"]=>
  string(10) "keep-alive"
  ["HTTP_CACHE_CONTROL"]=>
  string(9) "max-age=0"
  ["HTTP_ACCEPT"]=>
  string(63) "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
  ["HTTP_USER_AGENT"]=>
  string(123) "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.72 Safari/537.36 Sleipnir/4.3.0"
  ["HTTP_REFERER"]=>
  string(40) "http://192.0.0.3/f1.6/test07.html"
  ["HTTP_ACCEPT_ENCODING"]=>
  string(17) "gzip,deflate,sdch"
  ["HTTP_ACCEPT_LANGUAGE"]=>
  string(23) "ja,en-US;q=0.8,en;q=0.6"
  ["PATH"]=>
  string(308) "C:\ほげほげ;"
  ["SystemRoot"]=>
  string(10) "C:\Windows"
  ["COMSPEC"]=>
  string(27) "C:\Windows\system32\cmd.exe"
  ["PATHEXT"]=>
  string(53) ".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC"
  ["WINDIR"]=>
  string(10) "C:\Windows"
  ["SERVER_SIGNATURE"]=>
  string(96) "<address>Apache/うんちゃら</address>
"
  ["SERVER_SOFTWARE"]=>
  string(45) "Apache/うんちゃら"
  ["SERVER_NAME"]=>
  string(12) "192.0.0.3"
  ["SERVER_ADDR"]=>
  string(12) "192.0.0.3"
  ["SERVER_PORT"]=>
  string(2) "80"
  ["REMOTE_ADDR"]=>
  string(12) "192.0.0.2"
  ["DOCUMENT_ROOT"]=>
  string(15) "C:/xampp/htdocs"
  ["REQUEST_SCHEME"]=>
  string(4) "http"
  ["CONTEXT_PREFIX"]=>
  string(0) ""
  ["CONTEXT_DOCUMENT_ROOT"]=>
  string(15) "C:/xampp/htdocs"
  ["SERVER_ADMIN"]=>
  string(20) "postmaster@localhost"
  ["SCRIPT_FILENAME"]=>
  string(34) "C:/xampp/htdocs/f1.6/index.php"
  ["REMOTE_PORT"]=>
  string(5) "99999"
  ["REDIRECT_QUERY_STRING"]=>
  string(92) "text01=%E3%81%A6%E3%81%99%E3%81%A8%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88
&s1=%E9%80%81%E4%BF%A1"
  ["REDIRECT_URL"]=>
  string(22) "/f1.6/hogep/test07"
  ["GATEWAY_INTERFACE"]=>
  string(7) "CGI/1.1"
  ["SERVER_PROTOCOL"]=>
  string(8) "HTTP/1.1"
  ["REQUEST_METHOD"]=>
  string(3) "GET"
  ["QUERY_STRING"]=>
  string(92) "text01=%E3%81%A6%E3%81%99%E3%81%A8%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88
&s1=%E9%80%81%E4%BF%A1"
  ["REQUEST_URI"]=>
  string(115) "/f1.6/hogep/test07?text01=%E3%81%A6%E3%81%99%E3%81%A8%E3%83%86%E3%82%
AD%E3%82%B9%E3%83%88&s1=%E9%80%81%E4%BF%A1"
  ["SCRIPT_NAME"]=>
  string(19) "/f1.6/index.php"
  ["PATH_INFO"]=>
  string(13) "/hogep/test07"
  ["PATH_TRANSLATED"]=>
  string(28) "C:\xampp\htdocs\hogep\test07"
  ["PHP_SELF"]=>
  string(32) "/f1.6/index.php/hogep/test07"
  ["REQUEST_TIME_FLOAT"]=>
  float(1375124730.594)
  ["REQUEST_TIME"]=>
  int(1375124730)
}

そんな感じ(--)ノ
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:FuelPHP  thema:パソコンな日々 - genre:コンピュータ  Posted by ササキマコト 

  関連記事