發表文章

目前顯示的是 2013的文章

Fedora 或是 CentOS 中使用 MP3,MP4 等格式的解碼 codec

圖片
在 Fedora 中,一直以來都不會內建MP3,MP4等這些影音格式的解碼包,原因是因為這些解碼技術目前為止還是受版權保護的。
所以我們如果要可以在 Linux 中也可以看影片聽音樂的話,我們要先安裝解碼包。

不過既然這些是有版權保護的,我們用 YUM 的方式是沒有辦法安裝的,因為他的資料庫不會被收錄。所以我們要先把第三方支援的資料庫用 rpm 的方式建立進去。

sudo rpm -ivh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm
接下來,當我們點選影片的時候他就會自動去下載到我們需要的 codec 了。



同場加映: 因為Fedora內建的那個影音播放器外掛字幕會當機,不知道其他人有沒有遇到這樣的問題。既然我們都已經裝第三方的軟體庫了,索性我也就順便裝上了 Mplayer 。
Fedora 預設的桌面版本是用 GNOME 作基礎,所以我們安裝的時候就是要安裝

yum -y install gnome-mplayer

防止使用者還沒有填完表單就離開頁面

圖片
當我們面臨到很大量的表單填寫時,常常會分心去點別的東西。或是重新整理(手怎麼這麼賤)。當然離開了以後表單的資料要重填也是天經地義的。我們可以做的事情就是先把使用者的動作先擋下來,然後跪下來懇求他~~~


這個畫面應該常常看到吧!其實這段很容易。

window.document.body.onbeforeunload = function()
{
    return '您尚未將編輯過的表單資料送出,請問您確定要離開網頁嗎?';
}
大功告成!

jQuery .bind() 和 .live() 重複綁定的解法 ~ on() 和 delegate()

jQuery 可以幫我們動態生成很多的 DOM 出來,但是由於生成後原先指定該物件動作的指令不會被重複執行,所以我們做出來的 DOM 內容並不會有動作產生。

這時候,我們通常都會使用 bind() 函式,或是 llive() 函式來進行重新綁定的動作,由於 live() 會偵測整個 Document 的動作,當頁面中有大量不相關的 DOM 時,會導致動作延緩。所以在 1.7 之後已經被拋棄。

而這兩個函式都有一個共同的問題,就是當我們不斷產生新的 DOM 時,會不斷的重複榜定函式,這絕對不會是我們要的。看下面:


在網路上面找了很多解法,有些說可以用 unbind() 解決,也有說用 die() 解決。我自己試是都無效。雖然很多人都說可以用。

後來找到了更簡單的作法,不用像 bind() 一樣每次都要 bind() 可以一開始寫完之後動態產生的都套用,類似 live() 但是又不會像 live() 是由 Document 階層開始讀取。


on() 和 delegate() 其實這兩個函式我自己還沒找到差別在哪?不過如果你是用 1.7.1 之後的版本建議你可以用 on()
這個函式了。

先來講一下差異
delegate() 支援 1.4以上的版本,on() 到了 1.7.1 之後裁開始支援

delegate 的用法
$(document).delegate(selector, events, data, handler);

on 的用法
$(document).on(events, selector, data, handler);

發現兩個哪邊不同了嗎?參數互換而已。所以我挑一個做解釋就好了。既然 on 是後期版本的我們就介紹 on 吧!

$("父節點").on("事件","子節點",[如果有的話~回傳值],"動作");

因為他可以指定父節點,所以他就不用像是 live() 一樣由 document 開始巡邏,這樣省掉很多資源。
接下來事件的部份可以指定多個,只要用空白鍵分開例如: click hover 這樣,話不多說,直接看範例。



發現了嗎?用 on 下去寫只需要一開始的時候告訴頁面 class=item 的通通都要讓他點下去以後 alert('hi') 這樣不管後面動態怎…

用 jQuery 外掛達成 ajax 的非同步檔案上傳

圖片
一直以來我都很習慣將表單直接送出後上傳檔案,不過坦白的說這個並不是最順暢的方法。畢竟對使用者來說非同步的作法才是最省事的

找了很久找到了一個很乾淨的外掛,這是依附在 jQuery 底下的,所以在掛這個外掛之前 jQuery 記得也要先掛進來。

外掛官方網站
http://www.phpletter.com/Our-Projects/AjaxFileUpload/

下載後會有很多個檔案,不過最重要的其實只有 ajaxfileupload.js 這個檔案。
其他的是一些版面相關的東西。

我們首先要先在頁面檔案上掛載 jquery.js 然後再掛宰 ajaxfileupload.js
而上傳的界面其實很簡單:

<form name="form" action="" method="POST" enctype="multipart/form-data">
    <input name="fileToUpload" type="file" id="fileToUpload">
    <input id="uploadfile" type="button" value="upload" onclick="ajaxFileUpload();return false;">
</form> 看到上面紅字的地方了嗎?我們就是去呼叫 ajaxFileUpload() 這個函式去執行的。
所以我們要來編寫一下這個函式。



function ajaxFileUpload()
{
    /*
     prepareing ajax file upload
     url: the url of script file handling the uploaded files
     fileElementId: the file type of input element id and it will be the index of  $_FILES Array()
     dataType: it support j…

jQuery UI 搭配 php 完成自動輸入 input 搜尋功能 "autocomplete"

圖片
先準備一下,這個功能是在 jQuery UI 裡面的 autocomplete 功能
http://jqueryui.com/autocomplete/
先掛上這個外掛:
  <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />   <script src="http://code.jquery.com/jquery-1.9.1.js"></script>   <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
接下來就執行這個 Js 摟
$(function() {
    var availableTags = [];
    $.getJSON('/admin/api_member/get_member_name/?sales_id=S1381118633', function(json) {
        $("#member_name").autocomplete({
            source: json
        });
    });
});
這邊就會去呼叫 /admin/api_member/get_member_name/?sales_id=S1381118633 這個網址。而這個網址吐出來的資料就是一個簡單的 json 陣列就可以啦!

在 liunx 中也可以用 dropbox 與硬碟同步

圖片
Dropbox 是什麼東西我想就不用多說了
在 Windows 上面我們可以很開心的直接讓他和硬碟同步
那麼在 Linux 上面呢?其實官方也是有推出 Linux 的版本,只是沒有那麼顯眼罷了!

請先到這個地方來
下載 DropBox

上面有很多個 Linux 版本的安裝檔可以下載,不過我不建議用這個,其實頁面往下拉有更好的
我個人到最後是採用 CLI 指令碼下載一個 dropbox.py 的檔案。 下載完成後,首先先輸入: python dropbox.py
這時,他就會列出來可以用的功能,當然也可以在這裡找到安裝指令啦!
Dropbox command-line interface commands: Note: use dropbox help to view usage for a specific command. status get current status of the dropboxd help provide help puburl get public url of a file in your dropbox stop stop dropboxd running return whether dropbox is running start start dropboxd filestatus get current sync status of one or more files ls list directory contents with current sync status autostart automatically start dropbox at login exclude ignores/excludes a directory from syncing lansync enables or disables LAN sync
安裝看這裡:

接下來就和 Windows 版本的相同摟

給 Fedora 19 一個好用的螢幕擷取軟體吧!shutter

圖片
話說 Fedora 19 中內建的螢幕擷取軟體真是不好用。而且擺放的位置也很難找。
Fedora 19 原本的螢幕截圖軟體
我比較不喜歡的是,他在拍完後自動儲存,沒有經過編輯的動作或是給任何的提示。用起來怪奇怪一把的。
總之,有其他的軟體可以用吧!現在我要推薦的就是另一套叫做 shutter 的

首先,我們來安裝吧!這個很簡單,有在 yum 資料庫裡面的安裝都是小事。
$sudo yum -y install shutter
安裝完以後我們也是要幫他建立一下快捷鍵,總不會每次都要去找這個工具出來用吧。啟動這個軟體的指令就是
shutter --select






接下來請自行摸索,因為他是中文的。而且點選你設定的快捷鍵後就會自動出現很清楚的說明。自己試試看吧!


jQuery 的 AJAX 教學 - POST JSON 資料

自從 AJAX 開始風行起來後,JSON 交換資料的 API 就越來越常被用到。
之前我們在 jQuery解析遠端JSON資料  中有說到 $.getJSON() 這個函式。不過不是所有的東西都用 GET 來傳遞資料的吧!

所以我們這次來試試看用 POST 的方式來傳遞 JSON 資料。
首先我們先產出 JSON 資料,產出的方式請參閱:
JavaScript 將 Array 和 Object 轉成 JSON

然後真的要開始了(那剛剛在幹嘛?)

$.post()的函式介紹
$.post('呼叫路徑','送出資料(我們的 JSON)',取回資料的動作,格式);
有看懂嗎?我還是來解釋一下好了。除了第一個參數以外其他的都非必填(如果你只是要叫 API 端執行,然後我們什麼都不管的話):
最後一個參數:格式可以填寫 json 或是 xml。如果不指定的話會自動判斷,所以我們其實不用管他。


範例:
$.post('api.php',{member_id:"123456",member_name:"James Wolf"},function(callback){ alert(callback); },json);

以上面的例子來說:我們就是把 {member_id:"123456",member_name:"James Wolf"} 這段的 JSON 資料 post 給 api.php 。
當api.php 有回傳值的時候。就會傳入到 callback 這個變數中交給 funciton(callback){}執行。
至於function 中你要執行什麼事情就自己看著辦吧!我這邊用 alert 其實是看不出東西來的,因為如果回傳是 json 的話,alert 出來的畫面會是 [Object][Object]



參考資料
jQuery ajax - post() 方法

JavaScript 將 Array 和 Object 轉成 JSON

一直都在作 php 的後端工程,對於 php 來說轉換成 JSON 格式只需要使用 json_encode 這個函式就可以。
那麼如果要在 JavaScript 中產生 JSON 呢?

第一個動作:先宣告會用到的 Array 和 Object

var arr = new Array(); var obj = new Object; 然後我們用迴圈把 obj 的內容塞進去到 array 中
for (i = 0; i < 10; i++) { obj.color = 'red'; obj.doors = 4; obj.mpg = 23; arr = arr.concat(obj); } 提示一下: concat 這個函式是用來作陣列的堆疊。所以陣列 arr 裡面就會有很多的 obj 每個 obj 裡面會有三個值
最後利用 JSON.stringify(arr) 把陣列轉成 JSON
alert(JSON.stringify(arr));

相關連結請參考:
JSON.stringify 函式 (JavaScript)

javascript 取得網址列的 get 參數

在 PHP 中要取得 GET 參數非常容易,只需要 $_GET['參數名稱'] 就可以了,但是對於 JavaScript 來說就不是一件容易的事情,因為好像沒有內建的函式可以使用。所以我們自己作一個吧!


function getUrlParam(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if (r != null) return unescape(r[2]); return null; }
之後只要載入這個 function 然後呼叫他就可以解析出來摟

利用 jQuery 管理 cookie

第一件事情
jQuery 並沒有內建這個功能,但是可以利用 plugin 的方式
請自己載入以下的CDN路徑
http://cdn.jsdelivr.net/jquery.cookie/1.3.1/jquery.cookie.js

接下來就可以利用 jquery 的方式來操作 cookie 瞜~
我個人覺得這個比原生的 js 合理多了
基本操作如下:

cookie 設定
$.cookie('key', 'value', { path:'/', expires: 5 });
cookie 取得
$.cookie('key');
cookie 刪除
$.cookie('key',null);
參考資料

(jQuery)Cookie的新增、刪除、修改

讓 NetBeans 7.3.1 可以支援 CodeIgniter (CI)

自從開始使用CI就變得更懶了,總是覺得一定有更簡單的方式可以讓 IDE 有提示的功能。
最近終於給我找到了有人提供這樣的外掛
https://kenai.com/projects/nbphpci/pages/NBInstall

按照他們的步驟安裝完以後,你會發現:
"雖然有出現CI的選項但是卻不會自動提示"

該怎麼做呢
1.在你的專案上面按右鍵->porperties
2.Frameworks->CodeIgniter
3.開啟 Enabled
4.Add Folder  指向到你自己的  model  資料夾和  library 資料夾

重點是....
接下來你要重新啟動  NetBeans  他才會幫你載入這些 model 和  library

當然,如果你之後還有更新這兩個資料夾的內容,然後你又想要讓他可以自動完成的話,一樣要重新啟動才行

讓 PHP 接收 post 的 json 資料

我們在串接API的時候會用到 CURL 函式 POST 資料給 JSON 接收,雖然我們是使用 POST 傳出資料。但是我們在接收的 SERVER 端使用 $_POST 卻抓不到任何資料。

原來 PHP 默認只支援 application/x-www.form-urlencoded 來把資料塞入到  $_POST  所以即便你用 POST 傳值過來,也不能用 $_POST 來取值。
這時候我們就要用 $GLOBALS['HTTP_RAW_POST_DATA'] 來取得資料了。因為其實SERVER端是有拿到資料的,所以用這個參數就可以拿到"完整"資料。


後記:
後來又出現了一個問題,$GLOBALS['HTTP_RAW_POST_DATA'] 如果要可以正確取得資料,需要去把 php.ini 中的功能打開,這對很多專案中客戶是採用虛擬主機的是一個很大的問題。好險有另一個方式也可以取得原始的 post 資料:


echo $data = file_get_contents("php://input");

讓 cron 幫你做遠端 http 呼叫

cron 是 linux 中用來執行排程的排程表 用法在很多網站上面直接就可以找到,就不綴訴了。 不過因為常常用到的功能其實是要去呼叫某個 API 去執行一個後端運算所以還是針對這件事情寫個範例吧

基本寫法:
* * * * * /usr/bin/curl --silent 網址 這樣就會每分鐘都去執行一次網址,不過這樣做有個缺點,如果你要去執行的網頁剛好有輸出內容,那麼所有輸出的內容就會被丟進 corn 的 log 裡。這樣會造成系統的肥大。如果印出來的東西其實沒什麼參考價值那麼其實我們可以把他丟掉

* * * * * /usr/bin/curl --silent 網址 >/dev/null 2>&1 & 這樣就會把資料直接不存


Linux Crontab 定时任务 命令详解

AWS 的 S3 在 php 上的實作

導讀:
AWS - amazon 推出的雲端服務
S3 - AWS的雲端儲存服務
bucket - S3上的容器,可以無限多開但是只能開在根目錄(他沒有所謂目錄概念喔),而每一個bucket 都可以設定要檔案伺服器存在哪個地區,以台灣來說通常放在東京會比較快
object - bucket 上的每一個檔案都是一個 object ,如同上面所提他們沒有資料夾觀念,但是他們可以支援 / 作檔名,因此如果你自己本地端有檔案是 /var/www/html/file/aaa/123.zip 你大可把檔名設定為 file/aaa/123.zip 這樣他也是接受的@@

更多對於 S3 的認識:
這是要錢的服務(好像個人可以有限制的免費~),可以用API把東西丟到雲端伺服器上,然後設定各種權限。
小灰狼這次遇到的狀況就是客戶需要把檔案連結加上一支金鑰,避免只要拿到網址就可以到處亂給人家下載。這個功能的需求還滿普遍的


實作:
1.先註冊服務(這個文件好找~不說)
2.取得 access_key 和 secret_key 這個也找的到作法不說
3.建立一個bucket
3.下載第3方函式庫(為什麼用第3方,當然是原廠的爛阿)
amazon-s3-php-class
第3方函式庫文件

因為文件太完整所以懶的看的人直接往下看常用的實作

A. 把檔案(object)放到容器裡(bucket)
if (!defined('awsAccessKey')) define('awsAccessKey', 'awsAccessKey'); //輸入 awsAccessKey if (!defined('awsSecretKey')) define('awsSecretKey', 'awsSecretKey'); //輸入 awsSecretKey $s3 = new S3(awsAccessKey, awsSecretKey); // 宣告初始化 S3 這個 class $s3->setEndpoint('s3-ap-northeast-1.amazonaws.com'); // 設定連接的伺服器 …

PHP 取得資料夾底下的所有檔名 glob

glob這個函式用法很簡單,但是卻很強大
用法:

glob("資料夾路徑");
如此一來,就會將這個資料夾內的所有檔案用陣列回傳檔名,長這樣: Array ( [0] => 檔案1.txt [1] => 檔案2.html [2] => 檔案3.mp3 [3] => 檔案4.png )


如果說我要抓取某些檔案規則的話,可以用*來表示萬用字元
glob("資料夾路徑/*.txt"); 這樣的話,就只會印出: Array ( [0] => 檔案1.txt )

Fedora14 YUM 安裝 MySQL 5.5

話說...雖然 yum 很好用,很簡單的就可以安裝完成大部份我們會用到的東西。但是如果遇到套件版本較新的就沒辦法了嗎?這樣如果要安裝依些新技術來玩玩該怎麼辦呢?

還是有辦法的
只要多安裝一個東西"Remi"簡單的說...yum預設只幫我們安裝他認為最沒有問題的版本,而如果我們想要新一點的版本說不定就會在 remi 中找到

rpm -Uvh http://rpms.famillecollet.com/remi-release-14.rpm
接下來在安裝套件軟體的時候就只要特別下參數要求要remi 版本的就可以了
yum --enablerepo=remi install httpd mysql mysql-server php php-common

參考資料
Install Apache, MySQL 5.5.30 & PHP 5.4.12 on RHEL/CentOS 6.4/5.9 & Fedora 18-12

CendOS 5.6 上利用 yum 安裝升級 php5.4

目前坊間很常用的版本應該是 php 5.2 或是 5.3,不過很怪異的是,CendOS 5.6 版預設的 yum 資料庫仍然是 5.1x版
這讓我們這種習慣於用 yum 解決大部分事情的懶人來說非常的苦手

不過事情還是有解決方式的
wget http://mirror01.idc.hinet.net/EPEL/5/i386/epel-release-5-4.noarch.rpm wget http://rpms.famillecollet.com/enterprise/remi-release-5.rpm rpm -Uvh remi-release-5*.rpm epel-release-5*.rpm yum --enablerepo=remi update php
這樣應該就可以了,用下面的指令可以簡單的看一下php 的版本
php -v

參考連結:
CentOS 5.5 升級至 PHP 5.3
linux 上快速架設php &MySQL服務

CodeIgniter 快速驗證表單內容 form_validation

圖片
說在前面:
這個功能只支援 POST 方式,並不支援 GET 方式。想必之後也不會支援到,因為 GET 基本上來說被當成是網址連結。所以他就不幫你處理這件事啦!


先說一下使用流程:
1. load 模組
2. 設定規則
3. 執行
4. 將錯誤寫進變數

1. load 模組
$this->load->library('form_validation'); 基本上並不是每個程式都會用到表單驗證,所以我是比較建議要用的時候再 load 進來

2. 設定規則
$this->form_validation->set_rules('欄位KEY值(input 的 name)','錯誤訊息要顯示的欄位名稱','規則,以 | 分隔'); $this->form_validation->set_rules('manager_id','帳號','required|min_length[4]|valid_email');

3.執行
if($this->form_validation->run() == false){ 檢查後不通過要執行的事 }else{ 通過要檢查的事 }

4.將錯誤寫進變數
$error = form_error('欄位KEY值(input 的 name)','錯誤訊息開頭 tag','錯誤訊息結束 tag'); $error = form_error('manager_id','',' '); 如果form_error 的後面兩個值不填的話,系統會自動補 p

php 多維陣列排序 array_multisort

當我們在製作清單的時候通常會使用到多維陣列,在取出資料前就先在sql 中下 order by 的指令,但是有些時候我們會需要用到直接針對已經取出的陣列進行重新的排序 (這樣就不用再去問 SQL) 了。
這時候我們就可以使用 array_multisort 這個函式。

這個函式的使用方式還滿特殊的
簡單的說只要輸入
array_multisort($陣列,排序方式); 例如:
array_multisort($json_arr,SORT_DESC); 這樣就會自動被使用降冪排列。

不過我們會用到這個功能時大部分都會需要指定要參照排列的 key 值,這時候我們要動點小手腳
foreach ($json_arr as $key => $value) {
$date[$key] = $value['date'];
$end[$key] = $value['end'];
}
array_multisort($date,SORT_DESC,$end,SORT_DESC,$json_arr,SORT_DESC); 這樣的話他就會依照 'date','end','json_arr'這樣的優先順序進行排序



參考資料:

PHP array_multisort() 函数PHP函数array_multisort()实现多维数组排序的示例讲解

jQuery 修改清單排序

這個案例是點擊 class=test 物件會往下移動
不過因為沒有所謂替換的 function 可以用所以要變成是用建一個新的在 next 之後然後再把自己砍掉

 演示範例

建立一個可以sudo的使用者

通常我們不會用root來進linux系統 要使用root權限要用sudo的指令下來變身~ 不過並非使用者帳號一開始就可以執行sudo動作 adduser username
passwd username visudo 這樣會打開VI編輯器 ....(前面省略)....
root ALL=(ALL) ALL <==找到這一行,大約在 76 行左右
vbird1 ALL=(ALL) ALL <==這一行是你要新增的!
....(前面省略)....

CentOS 上安裝設定 PostgreSQL

首先我們先把需要安裝的都快速安裝一下

yum -y install postgresql postgresql-server httpd php php-pgsql
PostgreSQL在啟動前要先進行初始化的動作 service postgresql initdb
編輯PostgreSQL設定檔
/var/lib/pgsql/datapg_hba.conf 的最後面 #local all all ident sameuser
local all all trust
# host all all 127.0.0.1/32 ident sameuser
host all all 127.0.0.1/32 md5 服務啟動 service postgresql start

接下來要來設定Postgre的最高管理者"postgres"(就像MySQL的root一樣)
首先要先變換身分 su postgres 然後進入PostgreSQL指令管理 psql 幫postgres這個帳號建立密碼 alter user postgres with password '123456'; 請注意!!PostgreSQL指令管理介面的每個指令最後面一定要加上";"
附帶一提:裝完以後如果要讓php可以連接的話要去把SELINUX關掉~或是如果你會設定SELINUX權限的話是最好的啦

php 執行 csv 匯入(支援中文)

其實php本身就有內建 fgetcsv 的函式,不過可惜的是中文解析(針對big5)會有問題,如果編碼是utf-8就不會
在網路上面有找到一個自己寫的function

PHP fgetcsv讀取CSV檔案(支援中文語系)

我自己再多加上$_line = iconv("big5","utf-8//ignore",addslashes($_line));
就變成了

function __fgetcsv(&$handle, $length = null, $d = ",", $e = '"') { $d = preg_quote($d); $e = preg_quote($e); $_line = ""; $eof=false; while ($eof != true) { $_line .= (empty ($length) ? fgets($handle) : fgets($handle, $length)); $itemcnt = preg_match_all('/' . $e . '/', $_line, $dummy); if ($itemcnt % 2 == 0){ $eof = true; } } $_line = iconv("big5","utf-8//ignore",addslashes($_line)); $_csv_line = preg_replace('/(?: |[ ])?$/', $d, trim($_line)); $_csv_pattern = '/(' . $e . '[^' . $e . ']*(?:' . $e . $e . '[^' . $e . ']*)*' . $e . '|[^' . $d . ']*)' . $d . '/'; preg_match_all($_csv_pattern, $_csv_line, $_csv_matches); $_cs…

codeIgniter 環境配置 將welcome 改為index

圖片
當我們一開始下載下來 CodeIgniter 以後,會發現它的初始路徑是用 controllers 中的 welcome.php 開始,這件事讓我感到非常的不愉快,怎麼看怎麼覺得奇怪,於是我在 config 資料夾中的 rotues.php 找到這個設定值:
$route['default_controller'] = "welcome"; 原本以為這樣就大功告成了,不過卻出現了另一個問題,如下圖



Severity: Notice
Message: Undefined property: Index::$load
Filename: controllers/index.php
Line Number: 8
這就奇怪了,經過反覆確認 controllers 和 view 的對應並沒有錯誤,問題出在哪裡呢?
原來 Index 是保留字,也就是說 codeIgniter 是不允許我們使用 index 當作 controllers 的。不過我們只要寫成這樣:
class Index extends CI_Controller {
public function __construct()
{
parent::__construct();
// Your own constructor code
}
} 一樣也是可以用的喔


參考資料
http://codeigniter.org.cn/forums/thread-9556-1-1.html
http://www.codeigniter.org.tw/user_guide/general/reserved_names.html

讓 CodeIgniter 變成中文

圖片
前一篇我們提到CodeIgniter是一個中文文件很完備的應用程式框架,不過在下載的時候預設還是會英文版的

所謂英文版的~~就是差在一些他預設的錯誤訊息,如果你覺得看起來就是令人不開心,想要來點正體中文的話,其實也是可以的

Step1.先下載CodeIgniter主程式
Step2.下載中文語系檔
http://www.codeigniter.org.tw/downloads



Step3.修改成中文語系 a.找到 system/language/  把中文語系檔丟進 zh-TW 資料夾 b.找到 application/config 的 config 檔,更改 $config['language'] = 'zh-tw'; 就好了(沒意外的話應該會在72行左右)

完畢!

CodeIgniter 讓我們開始 PHP 的MVC架構吧

喊著要用傳說中的應用程式框架已經很久了,一直都沒有真的去用他,現在要下定決心開始選一套來用。就用CodeIgniter吧!

選用 CodeIgniter的理由其實挺單純的

中文化的說明文件:有一堆人在幫忙編輯中文官網上面的中文化,讓中文的說明接近完整(我終於看得懂了)免安裝,這個也相當重要,相較於另一套常見的Zend他的安裝方式相對簡單,只要把資料夾放上去就對了同樣採用MVC架構,和Zend相同CodeIgniter也是使用MVC架構下去建構 目前看起來比不過Zend的部分是~看起來他並沒有像Zend那麼完整的函示庫就是了,不過我本身覺得算是夠用了。
CodeIgniter中文官網 http://www.codeigniter.org.tw/
CodeIgniter中文官方手冊 http://www.codeigniter.org.tw/user_guide/