本文使用的是2.1.4版本,看的時候請注意。
官方文檔:http://codeigniter.org.cn/user_guide/general/helpers.html(關于輔助函數Helper的使用)
一、輔助函數是什麼
輔助函數,顧名思義,是幫助我們完成特定任務的函數。每個輔助函數檔案僅僅是一些函數的集合。例如,URL Helpers 可以幫助我們建立連結,Form Helpers 可以幫助我們建立表單,Text Helpers 提供一系列的格式化輸出方式,Cookie Helpers 能幫助我們設定和讀取COOKIE, File Helpers能幫助我們處理檔案,等等。
二、怎麼建立輔助函數
打開application\helpers目錄,建立json_helper.php;
因為PHP自帶的json_encode 對中文的封裝不是很好,會出現\u5c3c\u739b這種詭異的想象,那麼我們想要的目的是輸出中文,是以就寫一個輔助函數來自己調用;
内容:
<code><?php</code>
<code>function</code> <code>mJson_encode(</code><code>$jsonArray</code><code>)</code>
<code>{</code>
<code> </code><code>$newArray</code> <code>= </code><code>array</code><code>();</code>
<code> </code><code>// encode</code>
<code> </code><code>for</code><code>(</code><code>$i</code> <code>= 0;</code><code>$i</code> <code>< </code><code>count</code><code>(</code><code>$jsonArray</code><code>);</code><code>$i</code><code>++)</code>
<code> </code><code>{</code>
<code> </code><code>$jsonObject</code> <code>= </code><code>$jsonArray</code><code>[</code><code>$i</code><code>];</code>
<code> </code><code>foreach</code><code>(</code><code>$jsonObject</code> <code>as</code> <code>$key</code> <code>=> </code><code>$value</code><code>)</code>
<code> </code><code>{</code>
<code> </code><code>$newObject</code><code>[</code><code>$key</code><code>] = urlencode (</code><code>$value</code><code>);</code>
<code> </code><code>}</code>
<code> </code><code>array_push</code><code>(</code><code>$newArray</code> <code>, </code><code>$newObject</code><code>);</code>
<code> </code><code>}</code>
<code> </code><code>// decode</code>
<code> </code><code>return</code> <code>urldecode (json_encode (</code><code>$newArray</code><code>));</code>
<code>}</code>
<code>?></code>
三、如何調用建立的輔助函數;
在需要調用的controller裡面,加載json_helper輔助函數,$this->load->helper(‘json’);
然後按照正常調用PHP自帶函數的方式調用即可。
如:
$rs = mJson_encode($data['result']);
完整測試代碼:
<code>class</code> <code>UserController </code><code>extends</code> <code>CI_Controller</code>
<code> </code><code>public</code> <code>function</code> <code>__construct()</code>
<code> </code><code>parent::__construct();</code>
<code> </code><code>$this</code><code>->load->helper(</code><code>'json'</code><code>);</code>
<code> </code><code>$this</code><code>->output->set_content_type(</code><code>'application/html;charset=utf-8'</code><code>);</code>
<code> </code><code>function</code> <code>index()</code>
<code> </code><code>$this</code><code>->load->model(</code><code>'user_model'</code><code>);</code>
<code> </code><code>$data</code><code>[</code><code>'result'</code><code>] = </code><code>$this</code><code>->user_model->get_last_ten_entries();</code>
<code> </code><code>$data</code><code>[</code><code>'title'</code><code>] = </code><code>'Hello World Page Title'</code><code>;</code>
<code> </code><code>$this</code><code>->load->view(</code><code>'user_view'</code><code>, </code><code>$data</code><code>);</code>
<code> </code><code>function</code> <code>toJson()</code>
<code> </code><code>$rs</code> <code>= mJson_encode(</code><code>$data</code><code>[</code><code>'result'</code><code>]);</code>
<code> </code><code>echo</code> <code>$rs</code><code>;</code>
版權聲明:本文為部落客原創文章,未經部落客允許不得轉載。
如何聯系我:【萬裡虎】www.bravetiger.cn
【QQ】3396726884 (咨詢問題100元起,幫助解決問題500元起)
【部落格】http://www.cnblogs.com/kenshinobiy/