Archive for ‘ 2005 ’
[PHP]如何得知輸入的字串是否為 UTF-8 編碼
使用下列函數,如果傳回值為 true,表示輸入的字串為 UTF-8 編碼:
// Returns true if $string is valid UTF-8 and false otherwise. function is_utf8($string) { return preg_match('%^(?: [\x09\x0A\x0D\x20-\x7E] # ASCII | [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte | \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte | \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates | \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3 | [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15 | \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16 )*$%xs', $string); }
參考網頁
- 如何得知輸入的字串是否為 UTF-8 編碼 (Perl)
- W3C I18N FAQ:Multilingual Forms
- PHP:md_detect_encoding
- PHP:Multibyte String Functions
[Perl]如何得知輸入的字串是否為 UTF-8 編碼
使用下列函數,如果傳回值為 1,表示輸入的字串為 UTF-8 編碼:
#Returns 1 if $text is valid UTF-8 and 0 otherwise. sub is_utf8 { my $text = shift; if( $text =~ m/^( [\x09\x0A\x0D\x20-\x7E] # ASCII | [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte | \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte | \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates | \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3 | [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15 | \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16 )*$/x ){ return 1; } else{ return 0; } } #sub is_utf8
參考網頁
[Perl]Big5/UTF-8 編碼轉換的模組
Big5 及 UTF-8 編碼的轉換方式有兩種 (請先安裝 Encode::compat 模組):
方式一
use Encode::compat; use Encode qw(from_to); my $string = "中文"; #Big5 轉 UTF-8 from_to($string, 'big5', 'utf8'); print "$string\n"; #UTF-8 轉 Big5 from_to($string, 'utf8', 'big5'); print "$string\n";
[轉載][PHP]使用 PHP v4.2.0 及以後版本的注意事項
轉載自: 中文 PHP 資訊站
從PHP 4.2.0版本開始中, PHP 指令 register_globals 的預設值為 off(在php.ini配置文件裏). 這是 PHP 的一個主要變化。register_globals是幹什麼用的呢?它是PHP用來控制是否將EGPCS (Environment, GET, POST, Cookie, Server)變數是否註冊為總體變數的。
例如,對於 http://www.xx.php?var=2 這裏的var,在為 on 時,你只需用 $var 即可,但在 off 時,就必須用 $_GET["var"] 來接收了~ 這裏的 $_GET 就是一個PHP超總體變數陣列。和它性質一樣的還有:
- $GLOBALS
- $_SERVER
- $_GET
- $_POST
[轉載][PHP][MySQL]PHP 和 MySQL 開發的 8 個技巧
轉載自: 中文 PHP 資訊站
LAMP 架構的網站,我以前注重的多是安裝/配置方面的,講述開發的相對較少,因為自己從事開發也少。本文的原文當然也來自:
看了以後,頗有啟發,以前開發中遇到的一些問題,迎刃而解。所以翻譯出來和大家共用。
[轉載][PHP]PHP 使用無限生命期 Session 的方法
轉載自: 中文 PHP 資訊站
在PHP4.0中加入了對Session的支援,方便了我們很多程式,比如購物車等等。
在很多論壇中,Session也用於處理用戶的登陸,記錄下用戶名和密碼,使得用戶不必每次都輸入自己的用戶名和密碼!但是一般的Session的生命期有限,如果用戶關閉了瀏覽器,就不能保存Session的變數了!那麼怎麼樣可以實現Session的永久生命期呢?
大家知道,Session儲存在伺服器端,根據用戶端提供的SessionID來得到這個用戶的文件,然後讀取文件,取得變數的值,SessionID可 以使用用戶端的Cookie或者Http1.1協定的Query_String(就是訪問的URL的"?"後面的部分)來傳送給伺服器,然後伺服器讀取 Session的目錄……
PieTTY 0.3.5 - 實用的 Telnet/SSH 終端機連線程式
檔案下載
- 名 稱: PieTTY
- 版 本: 0.3.27
- 檔案大小: 316 KB
- 語言介面: 中英文版
- 版本性質: Freeware
- 釋出日期: 2005/06/14
- 作業平台: Windows NT/2000/XP
- 原創網站: PieTTY
- 檔案下載:
平常我都是用 SecureNetTerm,今天試用 PieTTY,發現這也是一支好用的 Telnet/SSH 終端機連線程式。PieTTY 修改自 Putty 0.57,對「亞洲語系」的相容性更高,用起來更方便、順手。
PieTTY 的特點
- 半透明顯示方式增為三種繪製方式以配合各種硬體。
- 內建 Big5-2003+中國海字集,免裝「Unicode 補完」!
- 內建簡易中文簡繁轉換(使用 autrijus 的表格) 。
- 使用界面大幅加強:無框視窗模式、記住最後視窗位置…
- 全新的視覺效果:視窗陰影!
- 可設為系統 telnet:// 處理程式
- 加強顯示非系統預設的語系,如在英文版Windows上設英文字型並同時顯示中文與韓文。
- 加強剪貼方式方便性,BBS 與 IRC 互貼彩色不是夢!
- 徹底解決之前各版點選網址的相關問題。
PieTTY 的缺點
- 沒有站台管理。
WikkaWiki 1.1.60 繁體中文版下載
檔案下載
- 名 稱: WikkaWiki
- 版 本: 1.1.60(20050214)
- 檔案大小: 612.62 KB
- 語言介面: 中文版
- 版本性質: Freeware
- 釋出日期: 2005/02/14
- 作業平台: Linux
- 原創網站: Wikka Wakka Wiki
- 檔案下載: 主程式(1160-20050214)
用 Wiki 來編寫文件實在是一種很好的模式,拿 Wiki 來當 "共同創作" 、 "知識管理" 或 "文件管理" 也都是很好的應用。網路上的 Wiki 套件有很多,但應該都還有很大的成長空間,也因為一直找不到心目中理想的 Wiki,所以就自己動手修改了 WikkaWiki。
Read more
實用的 screen 終端機管理程式
screen 是一個很方便的終端機管理程式,可以讓你在同一個終端機開啟多個 Session 來操作,加強多工的處理。即使你要離開電腦,也可以將 Session 執行脫離,或直接關閉終端機,這時執行中的程式還是會繼續執行,下次登入終端機時再取回 Session 來操作即可。
首先執行 Screen 程式,開始一個 Session:
$ screen
某些終端機視窗會在標題列顯示目前在操作的終端機編號,如果沒有顯示,你也可以輸入:
$ tty
來了解你目前正在哪個終端機中。
以快速鍵操作
切換時的快速鍵一開始都是 Ctrl + A
- 新增 Session:
Ctrl + A → Ctrl + C - 切換到上一個編號的 Session:
Ctrl + A → Ctrl + P - 切換到下一個編號的 Session:
Ctrl + A → Ctrl + N - 切換到指定編號的 Session:
Ctrl + A → 數字鍵 - 切換到下一個編號的 Session:
Ctrl + A → Space - 在兩個 Session 之間互相切換:
Ctrl + A → Ctrl + A - 鎖定 Session:
Ctrl + A → Ctrl + X - 顯示 Session 列表,可供你選取:
Ctrl + A → ⇧Shift + " - 新視窗的標題列顯示所有的 Session 編號 (其中有加上 * 表示是目前使用的 Session) :
Ctrl + A → Ctrl + W - 水平分割視窗 (可以持續分割) :
Ctrl + A → ⇧Shift + S - 垂直分割視窗 (可以持續分割,只有特定版本才支援,請參考後方的說明) :
Ctrl + A → ⇧Shift + | - 在分割的視窗做切換:
Ctrl + A → Tab - 關閉分割的視窗:
Ctrl + A → ⇧Shift + Q - 將所有的 Session 脫離(Detach),並回到執行 screen 前的狀態:
Ctrl + A → Ctrl + D
在這種狀態下,用戶可以不須理會這些 Session。不管用戶離線或是要從別的地方登入,只要下次登入時執行:screen -r
將所有 Session 叫回來繼續操作。
- 重新命名 Session:
Ctrl + A → ⇧Shift + A - 顯示日期、主機名稱及負載:
Ctrl + A → Ctrl + T - 將畫面暫停 (程式仍繼續執行):
Ctrl + A → Ctrl + S - 將暫停的畫面恢復:
Ctrl + A → Ctrl + Q
screen 的相關指令
- 啟動 Screen 程式,開始一個 Session:
$ screen
或指定 Id
$ screen -S SessionId
- 查看同一帳號共開啟過多少個 Session 及其 Id:
$ screen -ls
- 取回被脫離執行的 Session:
$ screen -r
或
$ screen -r SessionId
- 將其它的 Session 強制脫離:
$ screen -d
或
$ screen -d SessionId
這功能適用於原本操作的電腦當機或斷線了,讓你可以在下次取回還在主機中執行的 Session。
- 同步操作終端機 Session (兩邊必須登入相同的帳號):
$ screen -x
或
$ screen -x SessionId
- 移除 Session:
$ screen -wipe SessionId
模擬頁籤顯示
如果要在畫面底部秀出現在在哪個編號的 Session,請編輯 /etc/screenrc 或 ~/.screenrc,加入:
hardstatus alwayslastline "%-w%{= BW}%50>%n %t%{-}%+w%<"
同步作業說明
假設我在我目前所操作的終端機 Session 要分享給另一端的登入者查看,並且可以操作 (或者是我不想將遠端登入的用戶脫離 Session),則我要先以我的帳號登入主機並且執行 screen -S 特定名稱,然後另一端的登入者:
- 以相同的帳號登入主機
- 以 screen -ls 查看要取回的終端機 Session
- 以 screen -x 特定名稱 或 screen -x SessionId 進入相同的終端機 Session
垂直分割視窗
因為 screen 只能水平分割視窗,不能充分利用寬螢幕的特性實在有點可惜! 這裡有新版可垂直分割功能的 screen:
請自行編譯安裝。
命令別名
因為 screen 很實用,於是我在 bashrc 建立兩個 screen 指令的別名:
alias scr='screen -d -r Normal || screen -S Normal' alias scl='screen -ls'
我只要登入終端機就先打一次 scr,以取回上一次沒關閉的 Session。如果沒有上一次沒關閉的 Session,則會建立一個新的 Session。
scl 則可以列出目前有幾個屬於我的 session。
參考網頁
INFORMATION
我們解決了什麼問題?我們創造了什麼價值?
近期迴響