PHP實現的簡單mock json腳本分享_PHP教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:PHP實現的帶超時功能get_headers函數
      這篇文章主要介紹了PHP實現的帶超時功能的get_headers函數,本文直接給出實現代碼,需要的朋友可以參考下 代碼比較多,但是比較簡單,一眼就看穿的,so,文字盡量少寫了。 因為眾所周知的網絡原因,gavatar也開始越來越慢,寫了一個小東西來解決這個問題,過程中遇到了ge

       這篇文章主要介紹了PHP實現的簡單mock json腳本分享,本文直接給出實現代碼,需要的朋友可以參考下

         

      現在有太多方法去mock,不過當還是要連接到遠程服務器上測試真正的返回的時候,如果機器上沒有跑node而且有php的話,用這貨來臨時mock一下,或許更輕松。

      代碼如下:
      <?php
      /**
      * Mock Json for Javascript
      *
      * @author soulteary
      * @date 2014-06-15
      */


      /**
      * 請求接口字段:字符集
      */
      define('charset','charset');

      /**
      * 請求接口字段:回調函數名
      */
      define('callback','callback');

      /**
      * 請求接口字段:跨域字段
      */
      define('crossDomain','cross-domain');


      /**
      * 輸出mock數據
      * 如果存在mock.json文件,則數據從mock.js中獲取
      *
      * @return string
      */
      functionmockData()
      {
      if(file_exists('mock.json')){
      $data=json_decode(file_get_contents('mock.json'));
      }else{
      $data=Array(
      'code'=>200,
      'desc'=>'Get the default data.',
      'login'=>true,
      'data'=>Array(
      'name'=>'test api.'
      )
      );
      }
      returnjson_encode($data);
      }


      /**
      * 輸出字符集,允許結果為gbk、gb2312、utf-8
      * 如果非法或者未設置,輸出utf-8
      *
      * @return string
      */
      functioncharset()
      {
      $ret='utf-8';
      if(empty($_REQUEST[charset])){
      return$ret;
      }else{
      $charset=strtolower($_REQUEST[charset]);
      if(in_array($charset,array('gbk','gb2312'),true)){
      return$charset;
      }else{
      return$ret;
      }
      }
      }


      /**
      * 拼裝json數據
      *
      * @return string
      */
      functionjsonGenerator()
      {
      if(!empty($_REQUEST[callback])){
      header('Content-Type: application/javascript; charset='.charset());
      return$_REQUEST[callback]."(".mockData().");";
      }else{
      if(!empty($_REQUEST[crossDomain])){
      header("Access-Control-Allow-Origin: *");
      };
      header('Content-type: application/json; charset='.charset());
      returnmockData();
      }
      }

      /**
      * 輸出結果
      */
      die(jsonGenerator());

       

      如果你不想改動php里的data object,覺得麻煩,那么直接改動json好了,你或許會問,那我為啥不直接訪問一個json呢,答:

      1.你或許需要一個callback包裝這個結果;
      2.你或許期望這個json允許跨域請求;
      3.你或許期望這個json可以自定義header編碼…

       

      復制代碼 代碼如下:
      {
      "data":1,
      "w":"測試"
      }
      代碼很簡單,就不過多描述了。

      分享:Laravel框架中實現使用阿里云ACE緩存服務
      這篇文章主要介紹了Laravel框架中實現使用阿里云ACE緩存服務,本文擴展了一個ACE緩存驅動,以便使用阿里云ACE緩存服務,需要的朋友可以參考下 之前我寫了一篇在 Laravel 4 框架中使用阿里云 OCS 緩存的文章,介紹了如何通過擴展 Laravel 4 來支持需要 SASL 認證的阿里云 O

      來源:模板無憂//所屬分類:PHP教程/更新時間:2015-02-10
      相關PHP教程