php語法學(xué)習(xí)5(php參數(shù)讀取,cookie,session,filter過濾器和高級過濾器)

  1. php通常作為服務(wù)端語言為web或者客戶端app以接口的形式提供服務(wù),雖然php語言支持在php中寫前端html和form表單等,但是在通常的開發(fā)中都是前端和后端分離,即前端使用html,vue,ios,Android等去實現(xiàn),通過接口和php服務(wù)端進行交互,在交互的過程中,php需要獲取接口協(xié)議類型,接口協(xié)議請求方法,接口請求參數(shù),接口協(xié)議header配置屬性等,所以此處關(guān)鍵點不在表單的實現(xiàn),而是php作為后端如何處理上面的幾種數(shù)據(jù)邏輯。
    • php讀取接口協(xié)議方法和header數(shù)據(jù)的方式
      • 通過php的超全局變量$_SERVER獲取到和服務(wù)器相關(guān)的許多信息,包括服務(wù)器協(xié)議,方法,header等。
        • $_SERVER能獲取到的服務(wù)器相關(guān)屬性整理:
         $_SERVER['PHP_SELF']:當(dāng)前執(zhí)行腳本的文件名,與 document root 有關(guān) 例如,在地址
           為 http://example.com/test.php/foo.bar 的腳本中使用 $_SERVER['PHP_SELF'] 將得
           到 /test.php/foo.bar。
         $_SERVER['SERVER_ADDR']:當(dāng)前運行腳本所在的服務(wù)器的 IP 地址
         $_SERVER['SERVER_PROTOCOL']:請求頁面時通信協(xié)議的名稱和版本。例如,"HTTP/1.0"。
         $_SERVER['REQUEST_METHOD']: 訪問頁面使用的請求方法;例如,"GET", "HEAD","POST","PUT"。
         $_SERVER['HTTP_REFERER']:引導(dǎo)用戶代理到當(dāng)前頁的前一頁的地址(如果存在)。由 user agent 設(shè)置決定。并不是所有的用戶代理都會設(shè)置該項,有的還提供了修改 HTTP_REFERER 的功能。簡言之,該值并不可信。)
         $_SERVER['REMOTE_ADDR']:瀏覽當(dāng)前頁面的用戶的 IP 地址。
         其他具體的可以參考下面的參考文章。
        
         $userAgent = $_SERVER['HTTP_USER_AGENT'];
         echo "The user agent is: " . $userAgent;
        
         $ipAddress = $_SERVER['REMOTE_ADDR']; //獲取用戶接口的ip地址
         $method = $_SERVER['REQUEST_METHOD']; //獲取接口的請求方法
        
        • 使用apache_request_headers()函數(shù)來獲取所有的HTTP請求頭(僅限apache服務(wù)器)
        • 使用get_headers()函數(shù)來獲取遠程URL頭部信息(前提當(dāng)前服務(wù)器支持以此方式獲?。?
           $url = "http://www.example.com";
           $headers = get_headers($url);
           foreach ($headers as $header) {
             echo $header . "<br />\n";
             }
          
    • php讀取接口參數(shù)的方法
      • 使用超全局變量_POST、_GET等全局變量來獲取HTTP請求參數(shù)(對應(yīng)的get和post請求方法)
      • 當(dāng)接收JSON參數(shù)時,無法直接使用這些全局變量,因為JSON參數(shù)是作為請求體的一部分發(fā)送的??梢酝ㄟ^PHP的file_get_contents函數(shù)來獲取請求體的內(nèi)容
      • PHP提供了一些數(shù)據(jù)過濾函數(shù),如filter_input、filter_var等,可以用來過濾和驗證輸入的數(shù)據(jù)??梢允褂胒ilter_input函數(shù)來獲取JSON參數(shù)
      • 當(dāng)前端發(fā)送JSON參數(shù)時,會在請求頭中設(shè)置Content-Type為application/json??梢酝ㄟ^檢查$_SERVER[‘CONTENT_TYPE’]來確定請求的數(shù)據(jù)類型
      • php提供了fiter一系列函數(shù)對獲取到的參數(shù)進行過濾和校驗,可以直接操作接口api傳遞過來的參數(shù),也可以通過上面描述的方法獲取到對應(yīng)的參數(shù)后自己寫邏輯對參數(shù)進行校驗和處理。
  2. php處理cookie:php針對cookie的處理:
    //設(shè)置cookie
    <?php
      setcookie("user", "runoob", time()+3600);
      ?>
    
    <?php
      $expire=time()+60*60*24*30;
      setcookie("user", "runoob", $expire);
      ?>
    
    // 查看cookie
    <?php
    // 輸出 cookie 值
    echo $_COOKIE["user"];
    // 查看所有 cookie
    print_r($_COOKIE);
    ?>
    
    // 刪除cookie
    <?php
      // 設(shè)置 cookie 過期時間為過去 1 小時
      setcookie("user", "", time()-3600);
      ?>
    
  3. php處理session:php對seesion的處理:
    //開始session
    <?php session_start(); ?>

    // 存儲session
   <?php
    session_start();
    // 存儲 session 數(shù)據(jù)
    $_SESSION['views']=1;
    ?>

    // 刪除session
    <?php
      session_start();
      if(isset($_SESSION['views']))
        {
          unset($_SESSION['views']);
         }
    ?>

    <?php
      session_destroy();
    ?>

參考文章:
php api 參數(shù)的讀取方式
php api 獲取header的幾種方式
php api獲取header的幾種方式(文心快碼)
自定義驗證api參數(shù)
參數(shù)常見的幾種校驗:名稱,郵件,url
php過濾器
php 高級過濾器
php filter 文檔

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容