2010年8月30日 星期一

[Theory] 台灣身分證驗證規則 R.O.C. ID

身分證共有9個數字(N1~N9)加上開頭一個英文字(N0)

N0 N1 N2 N3 N4 N5 N6 N7 N8 N9

N0的英文字代表出生戶籍登記的地區 (不見得是出生地)

英文字與出生地區對照表如下:

A台北市 B台中市 C基隆市 D台南市 E高雄市 F台北縣 G宜蘭縣
H桃園縣 I嘉義市 J新竹縣 K苗栗縣 L台中縣 M南投縣 N彰化縣
O新竹市 P雲林縣 Q嘉義縣 R台南縣 S高雄縣 T屏東縣 U花蓮縣
V台東縣 W金門縣 X澎湖縣 Y陽明山 Z連江縣

每個英文字有其代表的數字, 用來稍後驗證時用, 其對照表如下:
A=10 B=11 C=12 D=13 E=14 F=15 G=16
H=17 I=34 J=18 K=19 L=20 M=21 N=22
O=35 P=23 Q=24 R=25 S=26 T=27
U=28 V=29 W=32 X=30 Y=31 Z=33

身份證號碼驗證方式:

(N0 十位數 + (N0 個位數 x 9) + (N1 x 8) + (N2 x 7) +  (N3 x 6) +  (N4 x 5) +  (N5 x 4) +  (N6 x 3) +  (N7 x 2) + N8 + N9)

以上算式得出來的結果如果能被10整除, 此身分證字號即為正確。

[Theory] ISBN國際標準書號

http://zh.wikipedia.org/zh-tw/國際標準書號

國際標準書號(International Standard Book Number,ISBN;擬發音is-ben),是國際通用的圖書或獨立的出版物(除定期出版的期刊)代碼。出版社可以通過國際標準書號清晰的辨認所有非期刊書籍。一個國際標準書號只有一個或一份相應的出版物與之對應。新版本如果在原來舊版的基礎上沒有內容上太大的變動,在出版時也不會得到新的國際標準書號碼。當平裝本改為精裝本出版時,原來相應的國際標準書號號碼也應當收回。


校驗碼的計算方法(13碼)

  1. 假設某國際標準書號號碼前12位是:978-986-181-728;
  2. 計算加權和S:S = (9x1)+(7x3)+(8x1)+(9x3)+(8x1)+(6x3)+(1x1)+(8x3)+(1x1)+(7x3)+(2x1)+(8x3) = 164;
  3. 計算S÷10的餘數M:M = 164 mod 10 = 4;
  4. 計算10 - M 的差N:N = 10 − 4 = 6;
  • 如果N = 10,校驗碼是數字「0」;
  • 如果N為其他數字,校驗碼是數字N。;

2010年8月11日 星期三

[HTML] mailto:

<a href="mailto:收件者?cc=副本&bcc=密件&subject=標題&body=內文">寄信給我</a>

[CodeIgniter] 使用Model時, 檔案名稱要用小寫

避免在不同的作業系統(Linux, Windows) Server大小寫錯誤。
The file name will be a lower case version of your class name. For example, if your class is this:
class User_model extends Model {

    function User_model()
    {
        parent::Model();
    }
}
Your file will be this:
application/models/user_model.php
都怪我沒把說明文件看清楚= =" 除錯除很久~

2010年8月10日 星期二

[PHP] convert date to timestamp 時間戳記

http://php.net/manual/en/function.strtotime.php
strtotime  Parse about any English textual datetime description into a Unix timestamp


Datetime to Timestamp

$timestamp = strtotime($datetime);


Timestamp to Datetime

date('Y-m-d', $timestamp);


<?php 
    // Calculate the difference in days.  
    $date1 = strtotime(2010-10-10);
    $date2 = strtotime(2011-12-01);
    $daysDiff = ($date2 - $date1)/(24 * 60 * 60);

    // Which is the latest?
    if ($date2 > $date1) {
      echo "$date2 is later than $date1";
    }
?>

可以用以上Code來作時間前後的比較, But if you do, your code will be susceptible to the 2038 bug.

2010年8月6日 星期五

[Linux] 常用指令

-----[更新字型]
fc-cache -f -v

-----[看某一目錄所佔的硬碟空間大小]
du -sh /var/www/html



-----[Vim - 從第一行開始尋找取代並詢問]
# 1,$s/尋找字串/取代字串/gc


grep -nrl ./dir .
ls -la
ll

-----[中文編碼問題]

LANG=zh_TW.big5

-----[將資料夾更改權限]

chown -R 權限群組:權限帳號 資料夾名稱

-R代表包括所有子目錄及檔案

# chown -R apache:apache htdocs



-----[即時觀看某文字檔內容]

# tail -f filename.txt



-----[將程序丟到背景執行]
將程序寫成sh檔
# chmod a+x filename.sh
# nohup ./filename.sh &


-----[查看執行中程序]
# ps aux
# ps aux | grep 程序名稱


-----[svn]

Checkout :
# svn checkout http://ip/svn/ProjectName

-----[查看某資料夾大小]
# du folderName -h

-----[檔案壓縮與解壓縮]

# tar --help

[bzip]
壓 縮:tar -jcv -f filename.tar.bz2 要被壓縮的檔案或目錄名稱
查 詢:tar -jtv -f filename.tar.bz2
解壓縮:tar -jxv -f filename.tar.bz2 -C 欲解壓縮的目錄

[gzip]
壓 縮:tar -zcv -f filename.tar.gz 要被壓縮的檔案或目錄名稱
查 詢:tar -ztv -f filename.tar.gz
解壓縮:tar -zxv -f filename.tar.gz -C 欲解壓縮的目錄

2010年8月3日 星期二

2010年8月2日 星期一

[PHP] Visibility

http://www.php.net/manual/en/language.oop5.visibility.php

<?php
/**
 * Define MyClass
 */
class MyClass
{
    public $public = 'Public';
    protected $protected = 'Protected';
    private $private = 'Private';

    function printHello()
    {
        echo $this->public."<br>";
        echo $this->protected."<br>";
        echo $this->private."<br>";
    }
}

$obj = new MyClass();
echo $obj->public."<br>"; // Works
//echo $obj->protected."<br>"; // Fatal Error
//echo $obj->private."<br>"; // Fatal Error
$obj->printHello(); // Shows Public, Protected and Private


/**
 * Define MyClass2
 */
class MyClass2 extends MyClass
{
    // We can redeclare the public and protected method, but not private
    protected $protected = 'Protected2';

    function printHello()
    {
        echo $this->public."<br>";
        echo $this->protected."<br>";
        echo $this->private."<br>";
    }
    
    function parentHello()
    {
     parent::printHello();
    }
}

$obj2 = new MyClass2();
echo $obj2->public."<br>"; // Works
echo $obj2->private."<br>"; // Undefined
//echo $obj2->protected."<br>"; // Fatal Error
$obj2->printHello(); // Shows Public, Protected2, Undefined
$obj2->parentHello();
?>


Result:
Public
Public
Protected
Private
Public
Notice: Undefined property: MyClass2::$private in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\global.php on line 49 
Public
Protected2
Notice: Undefined property: MyClass2::$private in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\global.php on line 38 
Public
Protected2
Private

[PHP] Variables Scope

變數範圍
http://php.net/manual/en/language.variables.scope.php

This can cause some problems in that people may inadvertently change a global variable.
這是為了避免無意間改變到全域變數。

<?php

$a=123; /* global scope 全域範圍 */

function test() {
 echo $a; /* reference to local scope variable
       so output nothing */
 
 echo $GLOBALS['a']; // 123
 
 global $a;
 echo $a; // 123
 
 $a = 456;
 echo $a; // 456
}

test();
?>

2010年8月1日 星期日

[PHP] substr_count 計算某一長字串中, 短字串的出現次數

substr_count  Count the number of substring occurrences
PHP Manual - substr_count



Description

int substr_count ( string $haystack , string $needle [, int $offset = 0 [, int $length ]] )


Example:

<?php
echo substr_count("不看就不看不看就不看不看就不看(有幾個不看?)", "不看");
?>
 
 
 


Result:

7
Related Posts Plugin for WordPress, Blogger...