真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

php中怎么實(shí)現(xiàn)RESTful風(fēng)格

在php中怎么實(shí)現(xiàn)RESTful風(fēng)格?這篇文章運(yùn)用了實(shí)例代碼展示,代碼非常詳細(xì),可供感興趣的小伙伴們參考借鑒,希望對(duì)大家有所幫助。

為柯橋等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及柯橋網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、柯橋網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

首先定義一個(gè)請求數(shù)據(jù)接收類;然后請求類中根據(jù)請求類型,進(jìn)行訪問不通方法;

 class Request
  {
      // 允許的請求方式
      private static $method_type = array('get', 'post', 'put', 'patch', 'delete');

      // 測試數(shù)據(jù)
      private static $test_class = array(
          1 => array('name'=>'測試一班','count'=>18), 
          2 => array('name'=>'測試二班','count'=>15)
      );

      public static function getRequest()
      {
          // 請求方法
          $method = strtolower($_SERVER['REQUEST_METHOD']);
          if (in_array($method, self::$method_type)) {
              // 調(diào)用請求方法對(duì)應(yīng)的方法
              $data_name = $method . "Data";
              return self::$data_name($_REQUEST);
          }
          return false;
      }

      // GET 獲取信息
      private static function getData($request_data)
      {
          $class_id = (int)$request_data['class'];
          if ($class_id > 0) {
              // GET /class/ID: 獲取某個(gè)指定班的信息
              return self::$test_class[$class_id];
          }else{ 
              // GET /class: 列出所有班級(jí)
              return self::$test_class;
          }
      }

      // POST /class 新建一個(gè)班級(jí)
      private static function postData($request_data)
      {
          $class_id = (int)$request_data['class'];
          if ($class_id == 0) {
              return false;
          }
          $data = array();
          if (!empty($request_data['name']) && isset($request_data['count'])) {
              $data['name'] = $request_data['name'];
              $data['count'] = $request_data['count'];
              self::$test_class[] = $data;
              return self::$test_class; 
          }else{
              return false;
          }
      }

      // PUT /class/ID 更新某個(gè)指定班級(jí)的信息(全部信息)
      private static function putData($request_data)
      {
          $class_id = (int)$request_data['class'];
          if ($class_id == 0) {
              return false;
          }

          $data = array();
          if (!empty($request_data['name']) && isset($request_data['count'])) {
              $data['name'] = $request_data['name'];
              $data['count'] = (int)$request_data['count'];
              self::$test_class[$class_id] = $data;
              return self::$test_class;
          }else{
              return false;
          }
      }

      // PATCH /class/ID 更新某個(gè)指定班級(jí)的信息 (部分信息)
      private static function pacthData($request_data)
      {
          $class_id = (int)$request_data['class'];
          if ($class_id == 0) {
              return false;
          }
          if (!empty($request_data['name'])) {
              self::$test_class[$class_id]['name'] = $request_data['name'];
          }
          if (isset($request_data['count'])) {
              self::$test_class[$class_id]['count'] = $request_data['count'];
          }
          return self::$test_class;
      }

      // DELETE /class/ID 刪除某個(gè)班
      private static function deleteData($request_data)
      {
          $class_id = (int)$request_data['class'];
          if ($class_id == 0) {
              return false;
          }
          unset(self::$test_class[$class_id]);
          return self::$test_class;
      }
  }

再定義一個(gè)數(shù)據(jù)輸出類,將數(shù)據(jù)輸出的格式進(jìn)行統(tǒng)一的封裝;最后將方法返回的數(shù)據(jù)進(jìn)行輸出即可。

   "Not Found");
              $message = "Not Found";
          }
  
          header(self::HTTP_VERSION . " $code $message");
          $content_type = isset($_SERVER['CONTENT_TYPE']) ? $_SERVER['CONTENT_TYPE'] : $_SERVER['HTTP_ACCEPT'];
          if (strpos($content_type, 'application/json') !== false) {
              header("Content-Type: application/json");
              echo self::encodeJson($data);
          }elseif (strpos($content_type, 'application/xml') !== false) {
              header("Content-Type: application/xml");
              echo self::encodeXml($data);
          }else{
              header("Content-Type: text/html");
              echo self::encodeHtml($data);
          }
      }
  
      // json 格式
      private static function encodeJson($responseData)
      {
          return json_encode($responseData);
      }
  
      // xml 格式
      private static function encodeXml($responseData)
      {
          $xml = new SimpleXMLElement('');
          foreach ($responseData as $key => $value) {
              if (is_array($value)) {
                  foreach ($value as $k => $v) {
                      $xml->addChild($k,$v);
                  }
              }else{
                  $xml->addChild($key,$value);
              }
          }
          return $xml->asXML();
      }
  
      // html 格式
      private static function encodeHtml($responseData)
      {
          $html = "";
          foreach ($responseData as $key => $value) {
              $html .= "";
              if (is_array($value)) {
                  foreach ($value as $k => $v) {
                      $html .= "";
                  }
              }else{
                  $html .= "";
              }
              $html .= "";
          }
          $html .="
$k$v$key$value
"; return $html; } } ?>

以上就是php實(shí)現(xiàn)RESTful風(fēng)格的方法介紹,詳細(xì)使用情況還得要大家自己使用過才能知道具體要領(lǐng)。如果想閱讀更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


網(wǎng)站標(biāo)題:php中怎么實(shí)現(xiàn)RESTful風(fēng)格
網(wǎng)頁地址:http://weahome.cn/article/iiehig.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部