<table cellspacing="0" cellpadding="0"><tr><td class="t_f" id="postmessage_35009"> <img alt="入力データ統一エントリークラス" src="http://img.it-home.org/data/attachment/forum/2014pic/16195715_kPci.png"> http://blog.qita.in/?post=494 <div class="blockcode"> <div id="code_Qzd"><ol>/**<li> * 入力用の統一された入り口を取得します </li> <li>*/</li> <li>class cls_request</li> <li>{</li> <li> private $getdata; //ストレージ取得データ</li> <li> private $postdata; //ストレージリクエストデータ</li> <li> private $ filedata; //ストレージファイルデータ</li> <li> private $cookiedata; //ストレージクッキー</li> <li> static $_instance; //このクラスのインスタンス</li> <li> <li> private function __construct()</li> <li> {</li> <li> $this->getdata = self:: format_data; _GET);</li> <li> $this->postdata = self::format_data($_POST);</li> <li> $this->requestdata = array_merge($this->getdata, $this->postdata);</li> <li> $this-> ;cookiedata = self::format_data($_COOKIE);</li> <li> $this->filedata = self::format_data($_FILES);</li> <li> }</li> <li> /**</li> <li> * クラス初期化メソッド </li> <li> *</li> <li> * @return cls_request オブジェクト </li> <li>*/</li> <li> public static function get_instance() </li> <li> {</li> <li> if(!(self::$_instance instanceof self))</li> <li> {</li> <li> self::$_instance = new self();</li> <li> }</li> <li> return self::$_instance;</li> <li> }</li> <li> <li> /**</li> <li> * GETで渡された数値変数を取得</li> <li> *</li> <li> * @param string $key</li> <li> * @return int or big int</li> <li> */</li> <li> public function get_num($key)</li> <li> {</li> <li> if(!isset($this->getdata[$key]))</li> <li> {</li> <li> return false;</li> <li> }</li> <li> return $this->to_num($this- >getdata [$key]);</li> <li> }</li> <li> <li> /**</li> <li> * POSTで渡された数値変数を取得</li> <li> *</li> <li> * @param string $key</li> <li> * @return int or big int</li> <li>*/</li> <li> public function post_num($key)</li> <li> {</li> <li> if(!isset($this->postdata[$key]))</li> <li> {</li> <li> return false;</li> <li> }</li> <li> return $this->to_num($this->postdata[$key]);</li> <li> }</li> <li> <li> /**</li> <li> * REQUESTで渡された数値変数を取得します</li> <li> *</li> <li> * @param string $key</li> <li> * @return int or big int</li> <li>*/</li> <li> public function request_num($key)</li> <li> { </li> <li> if( !isset($this->requestdata[$key]))</li> <li> {</li> <li> return false;</li> <li> }</li> <li> return $this->to_num($this->requestdata[$key]);</li> <li> }</li> <li> </li> <li> /* *</li> <li> * Cookie によって渡された数値変数を取得します</li> <li> *</li> <li> * @param string $key</li> <li> * @return int または big int</li> <li>*/</li> <li> public function cookie_num($key)</li> <li> {</li> <li> if(!isset($this->cookiedata[$key]))</li> <li> {</li> <li> return false;</li> <li> }</li> <li> return $this- >to_num ($this->cookiedata[$key]);</li> <li> }</li> <li> <li> /**</li> <li> * Files によって渡された変数値を取得します</li> <li> *</li> <li> * @param string $key</li> <li> * @return array</li> <li>*/</li> <li> public function file_data($key)</li> <li> {</li> <li> return $this->filedata[$key] ;</li> <li> } </li> <li> <li> /**</li> <li> * GETで渡された文字列変数を取得</li> <li> *</li> <li> * @param string $key</li> <li> * @param boolen $isfilter フィルタリングするかどうか </li> <li> * @return string</li> <li>*/</li> <li> public function get_string($key,$isfilter=true)</li> <li> {</li> <li> if(!isset($this->getdata[$key]))</li> <li> {</li> <li> return false;</li> <li> }</li> <li> if($isfilter)</li> <li> {</li> <li> return $this->gt;filter_string($this->getdata[$key]);</li> <li> }</li> <li> else</li> <li> {</li> <li> return $this->getdata[$key ];</li> <li> }</li> <li> }</li> <li> <li> /**</li> <li> * POSTで渡された文字列変数を取得します </li> <li> *</li> <li> * @param string $key</li> <li> * @param boolen $isfilter フィルタリングするかどうか </li> <li> * @return string</li> <li>*/</li> <li> public function post_string($key,$isfilter=true)</li> <li> {</li> <li> if(!isset($this->postdata[$key]))</li> <li> {</li> <li> return false;</li> <li> }</li> <li> if($isfilter)</li> <li> {</li> <li> return $this->gt;filter_string($this->postdata[$key]);</li> <li> }</li> <li> else</li> <li> {</li> <li> return $this->postdata [$key] ];</li> <li> }</li> <li> }</li> <li> <li> /**</li> <li> * REQUEST で渡された文字列変数を取得します </li> <li> *</li> <li> * @param string $key</li> <li> * @param boolen $isfilter フィルタリングするかどうか </li> <li> * @return string</li> <li>*/</li> <li> public function request_string($key,$isfilter=true)</li> <li> {</li> <li> if(!isset($this->requestdata[$key] ))</li> <li> {</li> <li> return false;</li> <li> }</li> <li> if($isfilter)</li> <li> {</li> <li> return $this->filter_string($this->requestdata[$key]);</li> <li> }</li> <li> else</li> <li> {</li> <li> return $this->requestdata [$key];</li> <li> }</li> <li> }</li> <li> <li> /**</li> <li> * COOKIEで渡された文字列変数を取得します </li> <li> *</li> <li> * @param string $key</li> <li> * @param boolen $isfilter フィルタリングするかどうか </li> <li> * @return string</li> <li>*/</li> <li> public function cookie_string($key,$isfilter=true)</li> <li> {</li> <li> if(!isset($this->cookiedata[ $key] ))</li> <li> {</li> <li> return false;</li> <li> }</li> <li> if($isfilter)</li> <li> {</li> <li> return $this->filter_string($this->cookiedata[$key]);</li> <li> }</li> <li> else</li> <li> {</li> <li> return $this- >cookiedata[$key];</li> <li> }</li> <li> }</li> <li> <li> /**</li> <li> * データのフォーマットとデータの転送</li> <li> *</li> <li> * @param array $data</li> <li>*/</li> <li> プライベート関数 format_data($data)</li> <li> {</li> <li> $result = array();</li> <li> if(!is_array($data))</li> <li> {</li> <li> $data = array();</li> <li> } </li> <li> while(list($key, $value) = each($data))</li> <li> {</li> <li> //処理checkbox之类的データ</li> <li> if(is_array($value))</li> <li> {</li> <li> $result[$key]=$value ;</li> <li> }</li> <li> else //普通数据</li> <li> {</li> <li> $result[$key] = trim($value);</li> <li> }</li> <li> }</li> <li> return $result;</li> <li> }</li> <li> /**</li> <li> * 数値に変換します</li> <li> *</li> <li> * @param string $num</li> <li> * @return int または big int または false</li> <li>*/</li> <li> private function to_num( $num)</li> <li> {</li> <li> if(is_numeric($num))</li> <li> {</li> <li> return intval($num);</li> <li> }</li> <li> else</li> <li> {</li> <li> return false;</li> <li> }</li> <li> }</li> <li> /**</li> <li> * フィルター文字列を変換</li> <li> *</li> <li> * @param string/array $data</li> <li> * @return string</li> <li>*/</li> <li> プライベート関数filter_string($data)</li> <li> {</li> <li> if($data===NULL)</li> <li> {</li> <li> return false;</li> <li> }</li> <li> if (is_array($data))</li> <li> {</li> <li> foreach ($data as $k=>$v) </li> <li> {</li> <li> $data[$k] = htmlspecialchars($v, ENT_QUOTES);</li> <li> }</li> <li> return $data;</li> <li> }</li> <li> else</li> <li> {</li> <li> return htmlspecialchars($data, ENT_QUOTES);</li> <li> }</li> <li> }</li> <li>}</li> </ol></div> <em onclick="copycode($('code_Qzd'));">复制代コード</em> </div> </td></tr></table> <div id="comment_35009" class="cm"> </div> <div id="post_rate_div_35009"></div> <br><br>