2009年11月26日 星期四

Google Maps API - 自定地圖類型

之前在『新增地圖控制項、地圖類型』一篇中已介紹過關於地圖類型的設定,以及可以使用的地圖類型(G_NORMAL_MAP 地圖、G_SATELLITE_MAP 衛星、G_HYBRID_MAP 混合、G_PHYSICAL_MAP 地形)。在 Google Maps API 也可以定義自己的地圖類型,並開發全新的顯示樣式。

可以透過 GTileLayer 建構圖塊疊加層, GMapType 建構新的地圖類型,並使用 GMap2.addMapType() 方法將其添加到地圖。


看範例所呈現的結果

1. 設定版權訊息

地圖通常包含從一些外部機構購買、生成或許可的圖片。這些圖片通常需要顯示版權訊息,在某些情況下(例如衛星數據),地圖上不同位置的圖片可能來自不同的來源。為了在自定地圖類型上顯示動態版權訊息,Google Maps API 提供了大量對象來存放版權訊息,並提供了基於當前視窗和縮放級別對此版權訊息實現檢索的方法和接口。

GCopyrightCollection(prefix?:String)︰管理自定義地圖類型的地圖上顯示的版權訊息。
GCopyright(id:Number, bounds:GLatLngBounds, minZoom:Number, text:String)︰版權對象包含以下訊息:哪個版權訊息適用於指定縮放級別的矩形地圖地區。

設定版權訊息詳細說明

2. 建構地圖圖塊層

GTileLayer(copyrights:GCopyrightCollection, minResolution:Number, maxResolution:Number, options?:GTileLayerOptions)︰您可以實現此接口,以透過 GMapType 或 GTileLayerOverlay 提供自定的地圖圖塊層。此接口的實現應使用 GTileLayer 實例作為原型,因為這樣可以為您實現版權處理。

GTileLayerOptions 物件中的的 tileUrlTemplate 屬性,是指定圖塊網址模板,該模板可以針對每個圖塊請求而展開,以根據現有的圖塊坐標引用唯一的圖塊。將模板置於 GTileLayer 構造函數中可允許您使用此坐標系動態檢索圖塊,檢索方式類似於 Google 地圖檢索圖塊的方式。模板的格式應該為︰
http://host/ij-map-{Z}-{X}-{Y}.png
,其中 X 和 Y 分別指緯度和經度圖塊坐標,Z 指縮放級別,比如 http://host/ij-map-2-3-1.png。

圖塊坐標


Google 地圖坐標,圖塊製作詳細說明

3. 建構新的地圖類型

GMapType(layers:GTileLayer[], projection:GProjection, name:String, opts?:GMapTypeOptions)︰實現自己的自定地圖類型。要在地圖中顯示地圖類型,請使用 GMap2.addMapType() 方法。

參考︰
class GCopyrightCollection
class GCopyright
class GTileLayer
GTileLayerOptions
class GMapType
GMapTypeOptions

更多教學文件在此︰Google Maps API - 前言及目錄

2009年8月24日 星期一

Remember The Milk - 線上待辦事項管理服務



Remember The Milk(記得牛奶),是一套介面簡潔、功能強大的線上待辦事項管理工具。主要紀錄重點是工作事項、到期日及完成與否,目的在提醒我們下一步要做什麼或是準備要做什麼,例如︰記得要去買牛奶。

以往我都是利用『Google 日曆』來記錄這些事情,但是總覺得有點怪,因為這些待辦事項通常都不需要很明確的開始或結束時間,甚至不需要是個連續時間區間。例如,在月底前要將房間整理乾淨,這件事情並沒有所謂的開始時間,在任何有空的時間都可以開始去做,也可以利用很多片段的時間來做,只要記得在月底前完成。或者例如,記得要去買牛奶,這件事情沒有所謂的時間,任何時間做都可以,就是記得要去買,沒有去買其實也沒關係,只是沒得喝。像這類事情用行事曆來記錄除了奇怪也沒有必要,Remember The Milk 就是以這樣的概念產生的。

那麼該如何區分什麼事情要記在『行事曆』,什麼事情要記在『待辦事項清單』呢?以我的使用經驗是,有很明確的開始及結束時間區間的約會行程就記在行事曆裡,例如︰與朋友的約會、工作會議、回南部或是出遊等。剩下沒有明確的時間區間或是只有到期日的工作事項就記在待辦事項清單裡。

Remember The Milk 除了可以紀錄工作事項、到期日及完成與否,還可利用『清單』組織不同任務,利用『標籤』與『地點』做分類查詢,利用『優先順序』區分重要程度。再利用簡單的『完成』與『延期』操作按鈕,彈性的管理自己要做的事,工作完成時就按下完成,工作必須延期時就延期,系統會記下你的拖延次數。你可以很快速的看到自己『今天』、『明天』和『逾期』的工作清單。並且可製作『智慧清單』,是依據搜尋條件所建立,在工作項目有異動時,會自動更新。操作上強調直覺和快速,聚焦在於工作處理本身。

Remember The Milk 還製作了『iGoogle 首頁小工具』,習慣將 iGoogle 作為首頁的我就相當方便。只要開啟 iGoogle 首頁就可以在同個頁面上,利用 Gmail 讀取信件、Google 日曆查看行程、Google 閱讀器閱讀文章,現在還可以直接查閱 Remember The Milk 上的待辦事項清單。

總之就是,記下它 >> 去做它 >> 完成它。現在,我又完成一件事情了『在 Blog 寫篇 Remember The Milk 的介紹』,來去按下『完成』鈕。

相關閱讀︰
電腦玩物 - Remember The Milk 線上待辦事項管理服務,隨時記住下一步行動(心得篇)

2009年8月17日 星期一

網頁畫面擷取工具

每回需要擷取某網頁整頁畫面時,都需要大費周章的按『PrtSc SysRq』鍵將畫面一段一段擷取下來,然後再貼到影像處理軟體(如 ︰Photoshop)來做拼接,實在是很麻煩,以下介紹三種簡單好用的工具。

Super Screenshot! - 線上網頁畫面擷取

Super Screenshot! 提供了線上網頁畫面擷取服務,不需要安裝任何軟體,只要將你想要擷取畫面的網址填入,接著按下『go』的按鈕,過沒多久該網頁的畫面就會被擷取下來。然後按下右下方的『View Screenshot』的按鈕,就可打開整張圖片,在圖片上按滑鼠右鍵選擇另存新檔即可。擷取的大小可以選擇完整大小、大、中、小、超小,檔案格式也可以選擇 JPEG 或者 PNG。



ScreenGrab - FireFox 擴充套件

ScreenGrab 是一套擷取網頁畫面的 FireFox 擴充套件。安裝 ScreenGrab 以後,當你開啟任何網頁,只要按下滑鼠右鍵,就會出現 ScreenGrab 的選單。當中分為 Save 和 Copy,其中 Save 就是直接存成 png、jpg 檔,或是按下 Copy 複製到剪貼簿裡然後到小畫家等繪圖軟體進行編輯。

其中分為三個細項︰

1. Complete Page/Frame︰把網頁全部 Save or Copy 起來,不管畫面是不是超過螢幕。

2. Visible portion︰把網頁畫面能看到的部分 Save or Copy 起來,超過螢幕的部分就不管了。

3. Selection︰選取想要 Save or Copy 的部分。

4. Window︰把網頁畫面能看到的部分及 FireFox 視窗全部 Save or Copy 起來。

SiteShoter - 網頁畫面擷取小軟體

SiteShoter 這套專門抓網頁的小軟體,可自動呼叫 IE 瀏覽器(背景執行)擷取指定網站的畫面,還有詳細的設定項目,如自動捲動抓圖能抓取超過一個畫面的網站、裁切網頁、停用 Javascript 跟 Flash 等。此外,SiteShoter 更可以使用命令列模式,配合排程軟體,幫你定時擷取網頁的內容。

安裝方式︰下載 siteshoter.zip,解壓縮後即可執行。如要中文界面,可下載中文語系檔 siteshoter_taiwanese.zip,解壓縮後的 SiteShoter_lng.ini 檔放在同一資料夾下即可。

2009年7月5日 星期日

阿榮福利味 AZO Freeware - 優質免費軟體/可攜式軟體收集 Blog

每當我們需要一些工具軟體,怎麼找都是需要付費的。雖說使用者付費,但是一般個人用戶那有那麼多錢去買那些軟體。如果去找破解版,基本上除了不尊重著作權以外,也都是非法使用。

現在不同了,有很多以往需要付費的工具軟體,都有其他免費軟體可以替代,這可要感謝那些心地善良程式開發者。

在這介紹一個很棒的 Blog『阿榮福利味』,裡面介紹了很多好用的工具軟體。所介紹的軟體都是免費的,更多是免安裝可攜式的綠色版。而且格主很用心,除了常常更新最新資訊也提供最新版本的下載點。

阿榮福利味
AZO Freeware - 優質免費軟體/可攜式軟體.提倡軟體自由.中文用戶取向

利用 MySQL 指令將資料庫匯出及匯入

我們曾經在『Windows 的 MySQL 資料庫熱備份 / 使用 BigDump 匯入大於 2MB 以上的 .sql』這篇文中介紹過,在 Windows 環境下是如何處理的。

其實 MySQL 本身就有兩個很好用的指令,不論在 Windows 或是 Linux 的環境下,都可以很順利的將某個資料庫內容作匯出及匯入。以下範例假設 MySQL 資料庫的帳號為 root,密碼為 123,要處理的資料庫為 phpbb

‧資料匯出 mysqldump

/mysql/bin/mysqldump --opt -uroot -p123 phpbb > phpbb_backup.sql

‧資料匯入 mysql

/mysql/bin/mysql -uroot -p123 phpbb < phpbb_backup.sql

我目前測試過最大的資料庫為 500MB,匯出及匯入都沒有什麼問題。

2009年5月14日 星期四

心智圖 Mind Map

心智圖,又稱腦圖、思維導圖、靈感觸發圖、概念地圖或思維地圖,是一種圖像式思維的工具與及一種利用圖像式思考輔助工具來表達思維的工具。

心智圖是由英國的托尼•博贊(托尼·布詹)於 1970 年代提出的一種輔助思考工具。心智圖通過在平面上的一個主題出發畫出相關聯的對象,像一個心臟及其周邊的血管圖,故稱為「心智圖」。由於這種表現方式和人思考時的空間想像比單純的文本更加接近,已經越來越為大家用於創造性思維過程中。

Mind Map

早期心智圖都是手繪的,現在當然有許多心智圖軟體可以使用,專業軟體如 Mindje Mind ManagerNovaMind,功能都非常強大好用,但是對個人使用者來說他們的價格並不便宜。所以,這裡介紹兩款免費好用的心智圖軟體。

。MindMeister

MindMeister 是使用 Ajax 技術所開發的線上使用工具。不需要安裝任何軟體,只要註冊一個帳號,或是透過 OpenID 的機制就可以立即使用。而且支援多種格式檔案輸出 MindManager(.mmap)、FreeMind格式(.mm) 、RTF、PDF、圖檔。

MindMeister

。XMind

XMind 是 Open Source 心智圖軟體,介面比 FreeMind 漂亮很多,支援 MindManager(.mmap)、FreeMind格式(.mm) 格式,除了心智圖外,還可以畫魚骨圖、組織圖、邏輯圖。重點是它有繁體中文版,不需要看教學就能輕鬆上手。

XMind

2009年5月9日 星期六

Google Maps API - 標註管理器

在 Google Maps 添加大量標註可能會降低顯示地圖的速度,也會產生太多視覺混亂,尤其是在處於某些縮放級別時。標註管理器 GMarkerManager 提供了一個解決這些問題的方案,允許在同一個地圖上高效顯示數百個標記,並能夠在不同的縮放級別指定所要顯示的標註。

下面這個範例我們創建了台灣縣市的鄉鎮市區行政區位置標註地圖。在縮放級別 7 到 10,僅顯示縣市。然後對於縮放級別 11 到 14,將所有鄉鎮市區顯示出來。

看範例所呈現的結果

var myMgr = new GMarkerManager(myMap); 建立一個標註管理器物件,其中 myMap 就是要控制的指定地圖。

GMarkerManager.addMarkers(markers, minZoom, maxZoom?) 向此標記管理器添加一批標註。直到調用 refresh() 方法時,才會向地圖添加這批標註。將標註置於地圖中後,如果這些標註都在地圖的當前視窗範圍內並且地圖的縮放級別高於或等於指定的 minZoom,則顯示標註。如果設定了 maxZoom,則在地圖的縮放級別高於或等於指定級別時自動刪除標註。

GMarkerManager.refresh(); 強制管理器更新地圖上顯示的標註。如果是使用 addMarkers 方法添加的標註,則必須調用此方法。

GMarkerManager.addMarker(marker, minZoom, maxZoom?) 向此管理器控制的標記集合添加單個標註。如果標註的位置在地圖的當前視窗範圍內,並且地圖的縮放級別屬於指定的縮放級別範圍,則立即向地圖添加標註。與 addMarkers 方法類似,minZoom 和可選的 maxZoom 參數指定顯示標註的縮放級別範圍。

參考︰
class GMarkerManager︰addMarkers(markers, minZoom, maxZoom?)、refresh()、GMarkerManager.addMarker(marker, minZoom, maxZoom?)

更多教學文件在此︰Google Maps API - 前言及目錄

2009年3月27日 星期五

Access To MySQL - 將 Access 轉 MySQL 工具

Access To MySQL 是一個 Microsoft Access 資料庫轉換到 MySQL 的小工具,可以直接將資料匯入至 MySQL 資料庫,或者建立 SQL 檔案,最重要它是免費軟件。

Access To MySQL

Access To MySQL

Content Type 大全

.* = application/octet-stream
.001 = application/x-001
.301 = application/x-301
.323 = text/h323
.906 = application/x-906
.907 = drawing/907
.a11 = application/x-a11
.acp = audio/x-mei-aac
.ai = application/postscript
.aif = audio/aiff
.aifc = audio/aiff
.aiff = audio/aiff
.anv = application/x-anv
.asa = text/asa
.asf = video/x-ms-asf
.asp = text/asp
.asx = video/x-ms-asf
.au = audio/basic
.avi = video/avi
.awf = application/vnd.adobe.workflow
.biz = text/xml
.bmp = application/x-bmp
.bot = application/x-bot
.c4t = application/x-c4t
.c90 = application/x-c90
.cal = application/x-cals
.cat = application/vnd.ms-pki.seccat
.cdf = application/x-netcdf
.cdr = application/x-cdr
.cel = application/x-cel
.cer = application/x-x509-ca-cert
.cg4 = application/x-g4
.cgm = application/x-cgm
.cit = application/x-cit
.class = java/*
.cml = text/xml
.cmp = application/x-cmp
.cmx = application/x-cmx
.cot = application/x-cot
.crl = application/pkix-crl
.crt = application/x-x509-ca-cert
.csi = application/x-csi
.css = text/css
.cut = application/x-cut
.dbf = application/x-dbf
.dbm = application/x-dbm
.dbx = application/x-dbx
.dcd = text/xml
.dcx = application/x-dcx
.der = application/x-x509-ca-cert
.dgn = application/x-dgn
.dib = application/x-dib
.dll = application/x-msdownload
.doc = application/msword
.dot = application/msword
.drw = application/x-drw
.dtd = text/xml
.dwf = Model/vnd.dwf
.dwf = application/x-dwf
.dwg = application/x-dwg
.dxb = application/x-dxb
.dxf = application/x-dxf
.edn = application/vnd.adobe.edn
.emf = application/x-emf
.eml = message/rfc822
.ent = text/xml
.epi = application/x-epi
.eps = application/x-ps
.eps = application/postscript
.etd = application/x-ebx
.exe = application/x-msdownload
.fax = image/fax
.fdf = application/vnd.fdf
.fif = application/fractals
.fo = text/xml
.frm = application/x-frm
.g4 = application/x-g4
.gbr = application/x-gbr
.gcd = application/x-gcd
.gif = image/gif
.gl2 = application/x-gl2
.gp4 = application/x-gp4
.hgl = application/x-hgl
.hmr = application/x-hmr
.hpg = application/x-hpgl
.hpl = application/x-hpl
.hqx = application/mac-binhex40
.hrf = application/x-hrf
.hta = application/hta
.htc = text/x-component
.htm = text/html
.html = text/html
.htt = text/webviewhtml
.htx = text/html
.icb = application/x-icb
.ico = image/x-icon
.ico = application/x-ico
.iff = application/x-iff
.ig4 = application/x-g4
.igs = application/x-igs
.iii = application/x-iphone
.img = application/x-img
.ins = application/x-internet-signup
.isp = application/x-internet-signup
.IVF = video/x-ivf
.java = java/*
.jfif = image/jpeg
.jpe = image/jpeg
.jpe = application/x-jpe
.jpeg = image/jpeg
.jpg = image/jpeg
.jpg = application/x-jpg
.js = application/x-javascript
.jsp = text/html
.la1 = audio/x-liquid-file
.lar = application/x-laplayer-reg
.latex = application/x-latex
.lavs = audio/x-liquid-secure
.lbm = application/x-lbm
.lmsff = audio/x-la-lms
.ls = application/x-javascript
.ltr = application/x-ltr
.m1v = video/x-mpeg
.m2v = video/x-mpeg
.m3u = audio/mpegurl
.m4e = video/mpeg4
.mac = application/x-mac
.man = application/x-troff-man
.math = text/xml
.mdb = application/msaccess
.mdb = application/x-mdb
.mfp = application/x-shockwave-flash
.mht = message/rfc822
.mhtml = message/rfc822
.mi = application/x-mi
.mid = audio/mid
.midi = audio/mid
.mil = application/x-mil
.mml = text/xml
.mnd = audio/x-musicnet-download
.mns = audio/x-musicnet-stream
.mocha = application/x-javascript
.movie = video/x-sgi-movie
.mp1 = audio/mp1
.mp2 = audio/mp2
.mp2v = video/mpeg
.mp3 = audio/mp3
.mp4 = video/mpeg4
.mpa = video/x-mpg
.mpd = application/vnd.ms-project
.mpe = video/x-mpeg
.mpeg = video/mpg
.mpg = video/mpg
.mpga = audio/rn-mpeg
.mpp = application/vnd.ms-project
.mps = video/x-mpeg
.mpt = application/vnd.ms-project
.mpv = video/mpg
.mpv2 = video/mpeg
.mpw = application/vnd.ms-project
.mpx = application/vnd.ms-project
.mtx = text/xml
.mxp = application/x-mmxp
.net = image/pnetvue
.nrf = application/x-nrf
.nws = message/rfc822
.odc = text/x-ms-odc
.out = application/x-out
.p10 = application/pkcs10
.p12 = application/x-pkcs12
.p7b = application/x-pkcs7-certificates
.p7c = application/pkcs7-mime
.p7m = application/pkcs7-mime
.p7r = application/x-pkcs7-certreqresp
.p7s = application/pkcs7-signature
.pc5 = application/x-pc5
.pci = application/x-pci
.pcl = application/x-pcl
.pcx = application/x-pcx
.pdf = application/pdf
.pdf = application/pdf
.pdx = application/vnd.adobe.pdx
.pfx = application/x-pkcs12
.pgl = application/x-pgl
.pic = application/x-pic
.pko = application/vnd.ms-pki.pko
.pl = application/x-perl
.plg = text/html
.pls = audio/scpls
.plt = application/x-plt
.png = image/png
.png = application/x-png
.pot = application/vnd.ms-powerpoint
.ppa = application/vnd.ms-powerpoint
.ppm = application/x-ppm
.pps = application/vnd.ms-powerpoint
.ppt = application/vnd.ms-powerpoint
.ppt = application/x-ppt
.pr = application/x-pr
.prf = application/pics-rules
.prn = application/x-prn
.prt = application/x-prt
.ps = application/x-ps
.ps = application/postscript
.ptn = application/x-ptn
.pwz = application/vnd.ms-powerpoint
.r3t = text/vnd.rn-realtext3d
.ra = audio/vnd.rn-realaudio
.ram = audio/x-pn-realaudio
.ras = application/x-ras
.rat = application/rat-file
.rdf = text/xml
.rec = application/vnd.rn-recording
.red = application/x-red
.rgb = application/x-rgb
.rjs = application/vnd.rn-realsystem-rjs
.rjt = application/vnd.rn-realsystem-rjt
.rlc = application/x-rlc
.rle = application/x-rle
.rm = application/vnd.rn-realmedia
.rmf = application/vnd.adobe.rmf
.rmi = audio/mid
.rmj = application/vnd.rn-realsystem-rmj
.rmm = audio/x-pn-realaudio
.rmp = application/vnd.rn-rn_music_package
.rms = application/vnd.rn-realmedia-secure
.rmvb = application/vnd.rn-realmedia-vbr
.rmx = application/vnd.rn-realsystem-rmx
.rnx = application/vnd.rn-realplayer
.rp = image/vnd.rn-realpix
.rpm = audio/x-pn-realaudio-plugin
.rsml = application/vnd.rn-rsml
.rt = text/vnd.rn-realtext
.rtf = application/msword
.rtf = application/x-rtf
.rv = video/vnd.rn-realvideo
.sam = application/x-sam
.sat = application/x-sat
.sdp = application/sdp
.sdw = application/x-sdw
.sit = application/x-stuffit
.slb = application/x-slb
.sld = application/x-sld
.slk = drawing/x-slk
.smi = application/smil
.smil = application/smil
.smk = application/x-smk
.snd = audio/basic
.sol = text/plain
.sor = text/plain
.spc = application/x-pkcs7-certificates
.spl = application/futuresplash
.spp = text/xml
.ssm = application/streamingmedia
.sst = application/vnd.ms-pki.certstore
.stl = application/vnd.ms-pki.stl
.stm = text/html
.sty = application/x-sty
.svg = text/xml
.swf = application/x-shockwave-flash
.tdf = application/x-tdf
.tg4 = application/x-tg4
.tga = application/x-tga
.tif = image/tiff
.tif = application/x-tif
.tiff = image/tiff
.tld = text/xml
.top = drawing/x-top
.torrent = application/x-bittorrent
.tsd = text/xml
.txt = text/plain
.uin = application/x-icq
.uls = text/iuls
.vcf = text/x-vcard
.vda = application/x-vda
.vdx = application/vnd.visio
.vml = text/xml
.vpg = application/x-vpeg005
.vsd = application/vnd.visio
.vsd = application/x-vsd
.vss = application/vnd.visio
.vst = application/vnd.visio
.vst = application/x-vst
.vsw = application/vnd.visio
.vsx = application/vnd.visio
.vtx = application/vnd.visio
.vxml = text/xml
.wav = audio/wav
.wax = audio/x-ms-wax
.wb1 = application/x-wb1
.wb2 = application/x-wb2
.wb3 = application/x-wb3
.wbmp = image/vnd.wap.wbmp
.wiz = application/msword
.wk3 = application/x-wk3
.wk4 = application/x-wk4
.wkq = application/x-wkq
.wks = application/x-wks
.wm = video/x-ms-wm
.wma = audio/x-ms-wma
.wmd = application/x-ms-wmd
.wmf = application/x-wmf
.wml = text/vnd.wap.wml
.wmv = video/x-ms-wmv
.wmx = video/x-ms-wmx
.wmz = application/x-ms-wmz
.wp6 = application/x-wp6
.wpd = application/x-wpd
.wpg = application/x-wpg
.wpl = application/vnd.ms-wpl
.wq1 = application/x-wq1
.wr1 = application/x-wr1
.wri = application/x-wri
.wrk = application/x-wrk
.ws = application/x-ws
.ws2 = application/x-ws
.wsc = text/scriptlet
.wsdl = text/xml
.wvx = video/x-ms-wvx
.xdp = application/vnd.adobe.xdp
.xdr = text/xml
.xfd = application/vnd.adobe.xfd
.xfdf = application/vnd.adobe.xfdf
.xhtml = text/html
.xls = application/vnd.ms-excel
.xls = application/x-xls
.xlw = application/x-xlw
.xml = text/xml
.xpl = audio/scpls
.xq = text/xml
.xql = text/xml
.xquery = text/xml
.xsd = text/xml
.xsl = text/xml
.xslt = text/xml
.xwd = application/x-xwd
.x_b = application/x-x_b
.x_t = application/x-x_t

2009年2月11日 星期三

Google 工具列 API - 在 Google 工具列上建立您自己的按鈕



將『Ian 懶惰蟲筆記』加入 Google 工具列 將『Ian 懶惰蟲筆記』加入 Google 工具列

Google 工具列 API 可以讓網站管理員使用 XML 為 Google 工具列 (第 4 版以上) 建立自訂按鈕。 這些按鈕可以瀏覽及搜尋網站、在選單中顯示 RSS 資訊提供,以及適時變更其圖示。 使用者只要按一下您網站上的連結,或是 Google 的按鈕集,就可以將您的自訂按鈕加到他們的工具列中。



深入閱讀︰
Google 工具列 API 首頁
Google 工具列 API 說明文件

2009年2月8日 星期日

MySQL、MS SQL 與 Oracle 的自動編號使用方法

MySQL、MS SQL 的自動編號比較方便,只要將在欄位設定 AUTO_INCREMENTIDENTITY,但在 Oracle 就要先增加一個 Sequence 物件,然後利用這個 Sequence 來產生編號。以下為使用範例︰

MySQL︰

MS SQL︰

Oracle︰


深入閱讀︰
GTN Network Solution - [Oracle] Oracle 產生自動編號方式

2009年2月7日 星期六

PHP - ADODB $ADODB_FETCH_MODE 決定資料集以那種方式將資料傳給陣列

$ADODB_FETCH_MODE 這個全域變數決定了資料集以那種方式將資料傳給陣列,資料集在被建立時(如 Execute() 或 SelectLimit() )會把本變數 $ADODB_FETCH_MODE 的值保存下來,而隨後本變數 $ADODB_FETCH_MODE 的任何改變都不會影響到現存的資料集,只有在以後資料集被建立起來時才會改變。

以下為為已定義的常數:

define('ADODB_FETCH_DEFAULT',0);
define('ADODB_FETCH_NUM',1);
define('ADODB_FETCH_ASSOC',2);
define('ADODB_FETCH_BOTH',3);

以下為一個使用的例子:

在本範例中,如你所見兩個資料集在被 Execute() 建立時,會依據 $ADODB_FERCH_MODE 的值來決定儲存及使用的存取模式。

如果沒有任何的模式被定義,預設值則是 ADODB_FETCH_DEFAULT。呈現的預設模式則依據資料庫驅動程式而有所不同,所以不要依賴 ADODB_FETCH_DEFAULT。為了可攜性,我們建議你固定為 ADODB_FETCH_NUM 及 ADODB_FETCH_ASSOC,因為有許多驅動程式並不支援 ADODB_FETCH_BOTH。

假如你有多個連結物件,並且想要有不同的 fetch 模式給每個連結,那麼就使用 SetFetchMode() 函數,一旦連結的物件呼叫這個函數,那麼連結物件會忽略全域變數 $ADODB_FETCH_MODE 並且自己會使用內部的 fetchMode 屬性。

要取得之前的 fetch 模式,你可以使用檢查 $db->fetchMode 屬性,或使用 SetFetchMode() 的傳回值。

PHP - Filter Functions 過濾器

在以往要檢查 E-mail 格式是否正確,我們通常都是透過寫正規表示式來做判斷,如下︰

但在 PHP5 之後,可以直接透過 Filter 函數,有更方便的作法,如下︰


深入閱讀︰
PHP Manual - Filter Functions
w3school 在线教程 - PHP Filter 函数