<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                [TOC] # 過濾與清理 清理用戶輸入是軟件開發的關鍵部分。信任或忽略對用戶輸入進行清理可能導致未經授權訪問應用程序的內容,主要是用戶數據,甚至是托管應用程序的服務器。 ![](https://docs.phalconphp.com/images/content/filter-sql.png) [完整大圖](http://xkcd.com/327) `Phalcon\Filter` 組件提供了一組常用的過濾器和數據清理助手。它提供圍繞PHP過濾器擴展的面向對象的包裝器。 ## 內置過濾器的類型 以下是此組件提供的內置過濾器: | 名稱 | 描述 | | ------------- | ------------------------------------------------------------------------------------------------------------- | | string |剝離標簽并對HTML實體進行編碼,包括單引號和雙引號 | | email | 刪除除字母,數字和 ``!#$%&*+-/=?^_`{\|}~@.[]`` 之外的所有字符 | | int |刪除除數字,加號和減號以外的所有字符 | | int! | 使用[intval](http://php.net/manual/en/function.intval.php)函數將值轉換為整數值 | | absint | 獲取已轉換為整數的值的絕對值 | | float | 刪除除數字,點,加號和減號以外的所有字符 | | float! | 使用[floatval](http://php.net/manual/en/function.floatval.php)函數將值轉換為浮點值 | | alphanum | 刪除[a-zA-Z0-9]以外的所有字符 | | striptags | 應用[strip_tags](http://www.php.net/manual/en/function.strip-tags.php)函數 | | special_chars | 轉義'“<>&和ASCII值小于32的字符 | | trim | 應用 [trim](http://www.php.net/manual/en/function.trim.php) 函數 | | lower | 應用 [strtolower](http://www.php.net/manual/en/function.strtolower.php) 函數 | | url | 刪除除字母,數字和 ``&#124;$`-_.+!*'(),{}[]<>#%";/?:@&=.^\\~`` 之外的所有字符 | | upper | 應用 [strtoupper](http://www.php.net/manual/en/function.strtoupper.php) 函數 | ## 清理數據 清理是從值中刪除特定字符的過程,用戶或應用程序不需要或不需要這些字符。通過清理輸入,我們確保應用程序的完整性將保持不變。 ```php <?php use Phalcon\Filter; $filter = new Filter(); // Returns 'someone@example.com' $filter->sanitize('some(one)@exa\mple.com', 'email'); // Returns 'hello' $filter->sanitize('hello<<', 'string'); // Returns '100019' $filter->sanitize('!100a019', 'int'); // Returns '100019.01' $filter->sanitize('!100a019.01a', 'float'); ``` ## 從控制器清理 訪問`GET`或`POST`輸入數據時(通過請求對象),您可以從控制器訪問`Phalcon\Filter`對象。第一個參數是要獲取的變量的名稱;第二個是要應用的過濾器。 ```php <?php use Phalcon\Mvc\Controller; class ProductsController extends Controller { public function indexAction() { } public function saveAction() { // Sanitizing price from input $price = $this->request->getPost('price', 'double'); // Sanitizing email from input $email = $this->request->getPost('customerEmail', 'email'); } } ``` ## 過濾操作參數 下一個示例顯示如何清理控制器操作中的操作參數: ```php <?php use Phalcon\Mvc\Controller; class ProductsController extends Controller { public function indexAction() { } public function showAction($productId) { $productId = $this->filter->sanitize($productId, 'int'); } } ``` ## 過濾數據 除了清理之外, `Phalcon\Filter`還通過刪除或修改輸入數據到我們期望的格式來提供過濾。 ```php <?php use Phalcon\Filter; $filter = new Filter(); // Returns 'Hello' $filter->sanitize('<h1>Hello</h1>', 'striptags'); // Returns 'Hello' $filter->sanitize(' Hello ', 'trim'); ``` <a name='combining-filters'></a> ## 結合過濾器 您還可以通過將過濾器標識符數組作為第二個參數傳遞,同時對字符串運行多個過濾器: ```php <?php use Phalcon\Filter; $filter = new Filter(); // Returns 'Hello' $filter->sanitize( ' <h1> Hello </h1> ', [ 'striptags', 'trim', ] ); ``` ## 添加過濾器 您可以將自己的過濾器添加到`Phalcon\Filter`。過濾函數可以是匿名函數: ```php <?php use Phalcon\Filter; $filter = new Filter(); // Using an anonymous function $filter->add( 'md5', function ($value) { return preg_replace('/[^0-9a-f]/', '', $value); } ); // Sanitize with the 'md5' filter $filtered = $filter->sanitize($possibleMd5, 'md5'); ``` 或者,如果您愿意,可以在類中實現過濾器: ```php <?php use Phalcon\Filter; class IPv4Filter { public function filter($value) { return filter_var($value, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4); } } $filter = new Filter(); // Using an object $filter->add( 'ipv4', new IPv4Filter() ); // Sanitize with the 'ipv4' filter $filteredIp = $filter->sanitize('127.0.0.1', 'ipv4'); ``` ## 復雜的清理和過濾 PHP本身提供了一個很好的過濾擴展,您可以使用。查看其文檔:[PHP文檔中的數據過濾](http://www.php.net/manual/en/book.filter.php) ## 實現自己的過濾器 必須實現`Phalcon\FilterInterface`接口才能創建自己的過濾服務,取代Phalcon提供的過濾服務。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看