2008年5月20日 星期二

《 Network 》Cisco Router Basic Setup

首先是認識 Cisco Router 的設定方式:
  1. Console ( using Roll-over )
  2. Telnet/SSH
  3. AUX port ( Auxiliary Port )

以上是必要知道的知識,接下來就用 Packet Tracer 模擬環境和操作設定

用 Packet Tracer 架構此網路環境(如圖一)

圖一,網路架構

注意要點:

  • 路由器要安裝 WAN 介面模組,要如何選擇必須是公司網路狀況
  • 必須知道硬體設備之間的網路線要用哪一種
  • 知道 DCE,DTE。DCE 端的 Router 要設定 Clock Rate

假設網路環境需要如此設定如圖二)

圖二,網路設定(點擊放大)

操作要點:

  • 設定 Router name
  • 設定 IP Address
  • 設定和啟動路由協定
  • 檢示路由表
##CONTINUE##

設定 Router name


// enable 進到特權模式
Router>enable
// 進到全域編輯模式
Router#configure terminal
// 設定新名稱
Router(config)#hostname HSR1


設定 IP Address


// 名稱馬上變了喔,選擇某個欲設定之介面
HSR1(config)#interface serial0/3/0
// 設定新的 IP,若是設定錯誤,請用 no ip address 10.1.1.254 255.255.255.0取消
HSR1(config-if)#ip address 10.1.1.254 255.255.255.0
// 啟動介面,通常 WAN 需要,Eathernet 不用
HSR1(config-if)#no shutdown
// 若是 DCE 端需要設定 Clock Rate 控制的是傳輸速度
HSR1(config-if)#clock rate 72000
HSR1(config-if)#exit


設定和啟動路由協定


// 啟用 Router RIP 協定
HSR1(config)#router rip
// 設定 Router 附近接的網域為何
HSR1(config-router)#network 10.1.1.0
HSR1(config-router)#network 10.3.1.0


檢示路由表


HSR1#show ip route


檢查路由器設定


// 在路由器
HSR1#show running-config
// 在一般電腦,假設 pc 之 ip 為 10.3.1.32
pc>tracert 10.5.1.32



我用 Packet Tracer 依照圖二的設定,做出來檔案分享:
[ 檔案一 ]-在學校做的,[ 檔案二 ]-在家做的

指導教授:TKWU@im.ncue.edu.tw

2008年5月14日 星期三

《 PHP 》擷取中文字串發生的斷字問題


  1. big5 編碼字串


  2. //擷取字串前幾個字並避免截掉半個中文字,$strlen要擷取的字串長度
    function CuttingStr($str,$strlen) {
    if(strlen($str) > $strlen) {
    for($i=0;$i<$strlen;$i++) {
    $ch=substr($str,$i,1);
    if(ord($ch)>127) $i++;
    }
    $str= substr($str,0,$i);
    }
    return $str;
    }



  3. utf-8 編碼字串


  4. //擷取字串前幾個字並避免截掉半個中文字,$strlen要擷取的字串長度(以英文字母數計算,中文字需算二個字數)
    //此處直接傳入從資料庫讀出之UTF-8編碼字串
    function CuttingStr($str, $strlen) {
    //把' '先轉成空白
    $str = str_replace(' ', ' ', $str);

    $output_str_len = 0; //累計要輸出的擷取字串長度
    $output_str = ''; //要輸出的擷取字串

    //逐一讀出原始字串每一個字元
    for($i=0; $i //擷取字數已達到要擷取的字串長度,跳出回圈
    if($output_str_len >= $strlen){
    break;
    }

    //取得目前字元的ASCII碼
    $str_bit = ord(substr($str, $i, 1));

    if($str_bit < 128) {
    //ASCII碼小於 128 為英文或數字字符
    $output_str_len += 1; //累計要輸出的擷取字串長度,英文字母算一個字數
    $output_str .= substr($str, $i, 1); //要輸出的擷取字串

    }elseif($str_bit > 191 && $str_bit < 224) {
    //第一字節為落於192~223的utf8的中文字(表示該中文為由2個字節所組成utf8中文字)
    $output_str_len += 2; //累計要輸出的擷取字串長度,中文字需算二個字數
    $output_str .= substr($str, $i, 2); //要輸出的擷取字串
    $i++;

    }elseif($str_bit > 223 && $str_bit < 240) {
    //第一字節為落於223~239的utf8的中文字(表示該中文為由3個字節所組成的utf8中文字)
    $output_str_len += 2; //累計要輸出的擷取字串長度,中文字需算二個字數
    $output_str .= substr($str, $i, 3); //要輸出的擷取字串
    $i+=2;

    }elseif($str_bit > 239 && $str_bit < 248) {
    //第一字節為落於240~247的utf8的中文字(表示該中文為由4個字節所組成的utf8中文字)
    $output_str_len += 2; //累計要輸出的擷取字串長度,中文字需算二個字數
    $output_str .= substr($str, $i, 4); //要輸出的擷取字串
    $i+=3;
    }
    }

    //要輸出的擷取字串為空白時,輸出原始字串
    return ($output_str == '') ? $str : $output_str;
    }



  5. 使用 PHP5 新增加的函式


  6. //取得 utf-8 編碼的字串長度,這裡共 8 個字
    echo iconv_strlen('無標題文件abc', 'utf-8');
    //取得 utf-8 編碼的子字串,指定 從 0 開始取 20個字,結果是 "無標題文件1無標題文件2無標題文件3無標"
    echo iconv_substr('無標題文件1無標題文件2無標題文件3無標題文件4無標題文件5', 0, 20, 'utf-8');