Archive for ‘ 二月, 2005

如何得知輸入的字串是否為 UTF-8 編碼 (PHP)

使用下列函數,如果傳回值為 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)

使用下列函數,如果傳回值為 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

參考網頁

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";

Read more

[轉載]使用PHP4.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

 

包含一個引用指向每個當前腳本的全局範圍內有效的變數。該陣列的鍵標為總體變數的 名稱。從 PHP 3 開始存在 $GLOBALS 陣列。

 

  • $_SERVER

 

變數由 Web 伺服器設定或者直接與當前腳本的執行環境相關聯。等同於舊陣列 $HTTP_SERVER_VARS 陣列,但和 $_SERVER 不是一個變數,因為PHP處理它們的方式不同,下同。雖然$HTTP_SERVER_VARST和下面的$HTTP_*_VARS仍然可以使用,但絕不推 薦您再使用$HTTP_*_VARS.

 

  • $_GET

 

經由 HTTP GET 方法提交至腳本的變數。例如由 URL、表單的GET方式 產生的變數。使用方式:$_GET["xx"];

 

  • $_POST

 

經由 HTTP POST 方法提交至腳本的變數。例如由 表單的POST方式 產生的變數。使用方式:$_POST["xx"];

Read more

[轉載]PHP 和 MySQL 開發的 8 個技巧

轉載自: 中文 PHP 資訊站


LAMP 架構的網站,我以前注重的多是安裝/配置方面的,講述開發的相對較少,因為自己從事開發也少。本文的原文當然也來自:

看了以後,頗有啟發,以前開發中遇到的一些問題,迎刃而解。所以翻譯出來和大家共用。

Read more

[轉載]PHP使用無限生命期Session的方法

轉載自: 中文 PHP 資訊站


在PHP4.0中加入了對Session的支援,方便了我們很多程式,比如購物車等等。

在很多論壇中,Session也用於處理用戶的登陸,記錄下用戶名和密碼,使得用戶不必每次都輸入自己的用戶名和密碼!但是一般的Session的生命期有限,如果用戶關閉了瀏覽器,就不能保存Session的變數了!那麼怎麼樣可以實現Session的永久生命期呢?

大家知道,Session儲存在伺服器端,根據用戶端提供的SessionID來得到這個用戶的文件,然後讀取文件,取得變數的值,SessionID可 以使用用戶端的Cookie或者Http1.1協定的Query_String(就是訪問的URL的"?"後面的部分)來傳送給伺服器,然後伺服器讀取 Session的目錄……

Read more

如何備份 MySQL 的資料庫

突然想到 MySQL 備份的問題,其實 MySQL 本身有一個 “mysqldump” 的指令,可以用來備份/還原資料庫的內容,用這個指令來備份資料通常沒什麼問題,但當你要把資料還原時,除非裡面沒有中文字,否則,中文字的衝碼,經常會導致還原失敗!

解決的方法

  • 方法一: 改用 UTF-8 編碼格式儲存資料,即可繼續使用 mysqldump 指令。
  • 方法二: MySQL 的資料庫放在 [/var/lib/mysql] 下,直接將 [/var/lib/mysql] 下的資料庫目錄用 “tar” 指令備份起來即可(備份及還原前最好先暫停 MySQL 的服務)。
  • P.S.我已經儘量都把程式及資料庫改成 UTF-8 編碼了,但我還是用 “方法二” 來備份資料的。

    PieTTY 0.3.5 - 實用的 Telnet/SSH 終端機連線程式

    檔案下載

    平常我都是用 SecureNetTerm,今天試用 PieTTY,發現這也是一支好用的 Telnet/SSH 終端機連線程式。PieTTY 修改自 Putty 0.57,對「亞洲語系」的相容性更高,用起來更方便、順手。

    PieTTY 的特點

    • 半透明顯示方式增為三種繪製方式以配合各種硬體。
    • 內建 Big5-2003+中國海字集,免裝「Unicode 補完」!
    • 內建簡易中文簡繁轉換(使用 autrijus 的表格) 。
    • 使用界面大幅加強:無框視窗模式、記住最後視窗位置…
    • 全新的視覺效果:視窗陰影!
    • 可設為系統 telnet:// 處理程式
    • 加強顯示非系統預設的語系,如在英文版Windows上設英文字型並同時顯示中文與韓文。
    • 加強剪貼方式方便性,BBS 與 IRC 互貼彩色不是夢!
    • 徹底解決之前各版點選網址的相關問題。

    PieTTY 的缺點

    • 沒有站台管理。

    [轉載]時間不夠怎麼辦?

    轉載自: 老貓學出版


    更美好的是,他在途中拯救一名被當祭神禮品的女子並談了戀愛,讓他原先有條不紊的旅行計畫亂成一團,卻得到無可替代的最動人結局……

    很多真心想開始閱讀的人擔心一件事,時間不夠怎麼辦?

    這樣子的擔心,往往會令人神經質起來,徘徊在閱讀之門外躑躅不進,他們會急著想問出該從哪本書看起,想知道好書的定義而且哪些書非看不可。想學會最有效率的閱讀方法等等--只因為他們心中有個時間的壓力,遂更怕「看錯了書」從而浪費更多時間。

    這裡,我們一個真心但可能不受歡迎的建議是:閱讀,首先便要有浪費時間的準備,而且充份的享受這個浪費。浪費,才讓你真心感受到富裕和繁華,人生雖然苦短,但絕大多數時候我們並不像自己嚇自己那樣的忙,我們擔心時間不夠,其實真正的意思是擔心划不來。

    同樣的,在進一步談下去之前,我們先來講一下東京隅田川的水上巴士之旅,只除了這不出自於哪本書,而是去年秋天(秋天真的是最棒的旅遊季節,只可惜假太少)我個人的小小經歷。

    Read more

    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

    return top