Archive for the ‘ Coding ’ Category

[轉載][MySQL]資料庫表單及欄位命名規則實例

轉載自: Neo』s Blog


今天大概把幾種常見的資料庫命名方式給整理了一下。

1.資料庫表單(Table)名稱:

單複數皆有人使用,如 products、product。

美國人命名比較喜歡依照口語習慣來用複數命名,知名的 OpenSource 軟體像 phpBB、OSCommerce、In-Link、pLog 皆是以複數命名。而 Moveable Type 則是少數使用單數名命的軟體,台灣人也是單數命名居多。

2.資料庫欄位名稱:

使用 MySQL 的 Opensource 軟體比常見整批性的加前綴(Prefix) 在欄位裡面,如 products 表單中的「產品名稱」,可能就會命名為「products_name」而 Microsoft SQL Server 則是以純欄位名稱居多,如產品名稱就直接取叫「name」了。

前綴的命名有「語意導向」跟「實用導向」二種,所謂語意導向以口語的習慣來命名,像 products 是產品的集合(複數),裡面的每個產品是單數,所以用產品名稱為例就是「product_name」。

而實用導向常見的就是以表單名稱做為前綴,如前例在 products 裡的產品名稱欄位就會命名為「products_name」,如此做的好處是程式會非常清楚每個欄位是從哪個表單抓出來的。但是缺點是在程式裡面語意不清,看起來會很不習慣。

然而大部份的欄位前綴字元還是以語意導向為主,若要使用實用導向,最好表單名稱採用單數(如 Moveable Type),否則像 OSCommerce 的全員複數,感覺程式在用名字就很奇怪,如程式明明就是只抓一筆產品名稱出來,看到 products_name 就覺的既不是複數,而且文法上也不通,意義上反而比較像 product』s name。

3.大小寫:

Microsoft 的命名方式喜歡單字第一個字母大寫,如 OrderDetail。而 MySQL 比較常見全部小寫,單字中間加底線的命名方式,如 order_detal。這跟資料庫的字元大小寫敏感度預設值有關,MS SQL Server 預設是大小寫不分,MySQL 則是大小寫視為不同欄位,所以統一小寫比較不容易出錯。

[轉載][PHP]PHP 對於文件鎖定的處理方式

轉載自: 中文 PHP 資訊站


一般個人免費主頁空間都不會提供mysql支援,就是提供也很苛刻,所以尋找也個良好的替代方案很重要哦!

PHP的文件處理功能很強大,所以可以用文件的存取來代替來!(要知道沒有資料庫的時候,什麼都是用文件組織的哦!呵呵!),其中個資料項目用特殊符號分割,我採用的是"||",方便通過explode()函數讀取單個記錄

其實這裡資料庫的思想還是可以用到的!象資料庫的索引!所以必須先做個索引文件!(這樣說也並不正確)

Read more

[PHP]如何建立與 Outlook 相容的 IMap 目錄

我們公司的郵件伺服器是用 IMap 協定來讀取電子郵件 (因為 IMap 的郵件是放在伺服器上,不怕用戶的電腦中毒,就算用戶的硬碟毀了,郵件也都還在),因為這個原因,所以我必須要找一個可以支援 IMap 的 Webmail。
Read more

[Perl]如何建立與 Outlook 相容的 IMap 目錄

原因

請參考這一篇

Read more

[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);
}

參考網頁

 

[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

參考網頁

[轉載][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

 

包含一個引用指向每個當前腳本的全局範圍內有效的變數。該陣列的鍵標為總體變數的 名稱。從 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]PHP 和 MySQL 開發的 8 個技巧

轉載自: 中文 PHP 資訊站


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

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

Read more

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

轉載自: 中文 PHP 資訊站


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

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

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

Read more

[轉載][PHP]正規表示式基本語法

轉載自: 中文 PHP 資訊站


首先讓我們看兩個特殊的符號: ^ 和 $。他們的作用是分別指出一個字串的開始和結束。例子如下:

  • ^The:表示所有以「The」開始的字串(「There」、「The cat」等);
  • of despair$:表示所有以「of despair」結尾的字串;
  • ^abc$:表示開始和結尾都是「abc」的字串--呵呵,只有「abc」自己了;
  • notice:表示任何包含「notice」的字串。

像最後那個例子,如果你不使用兩個特殊字元,你就在表示要查找的串在被查找串的任意部分--你並不把它定位在某一個頂端。

Read more

return top