【PHP框架CodeIgniter學習】使用輔助函式—建立自己的JSONHelper

suboysugar發表於2015-08-12

本文使用的是2.1.4版本,看的時候請注意。

官方文件:http://codeigniter.org.cn/user_guide/general/helpers.html(關於輔助函式Helper的使用)

一、輔助函式是什麼

        輔助函式,顧名思義,是幫助我們完成特定任務的函式。每個輔助函式檔案僅僅是一些函式的集合。例如,URL Helpers 可以幫助我們建立連結,Form Helpers 可以幫助我們建立表單,Text Helpers 提供一系列的格式化輸出方式,Cookie Helpers 能幫助我們設定和讀取COOKIE, File Helpers能幫助我們處理檔案,等等。

二、怎麼新建輔助函式

開啟applicationhelpers目錄,新建json_helper.php;

因為PHP自帶的json_encode 對中文的封裝不是很好,會出現u5c3cu739b這種詭異的想象,那麼我們想要的目的是輸出中文,所以就寫一個輔助函式來自己呼叫;

內容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
function mJson_encode($jsonArray)
{
    $newArray array();
    // encode
    for($i = 0;$i count($jsonArray);$i++)
    {
        $jsonObject $jsonArray[$i];
 
        foreach($jsonObject as $key => $value)
        {
            $newObject[$key] = urlencode ($value);
        }
        array_push($newArray $newObject);
    }
    // decode
    return urldecode (json_encode ($newArray));
}
?>

三、如何呼叫新建的輔助函式;

在需要呼叫的controller裡面,載入json_helper輔助函式,$this->load->helper(‘json’);
然後按照正常呼叫PHP自帶函式的方式呼叫即可。

如:

$rs = mJson_encode($data[`result`]);

完整測試程式碼:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
class UserController extends CI_Controller
{
    public function __construct()
    {
        parent::__construct();
        $this->load->helper(`json`);
        $this->output->set_content_type(`application/html;charset=utf-8`);
    }
    function index()
    {
        $this->load->model(`user_model`);
        $data[`result`] = $this->user_model->get_last_ten_entries();
        $data[`title`] = `Hello World Page Title`;
        $this->load->view(`user_view`$data);
    }
    function toJson()
    {
        $this->load->model(`user_model`);
        $data[`result`] = $this->user_model->get_last_ten_entries();
        $data[`title`] = `Hello World Page Title`;
        $rs = mJson_encode($data[`result`]);
        echo $rs;
    }
 
}
 
?>

版權宣告:本文為博主原創文章,未經博主允許不得轉載。

如何聯絡我:【萬里虎】www.bravetiger.cn
【QQ】3396726884 (諮詢問題100元起,幫助解決問題500元起)
【部落格】http://www.cnblogs.com/kenshinobiy/


相關文章