Thursday, April 30, 2009

การใช้ FTP และ TELNET

การใช้ FTP และ TELNET

FTP ( File Transfer Protocol ) คือ บริการที่ใช้ในการโอนย้าย file หรือข้อมูลจากคอมพิวเตอร์หนึ่งไปยังอีกคอมพิวเตอร์หนึ่ง

Telnet คือ การขอเข้าใช้ระบบจากระยะไกลผู้ใช้สามารถเข้าไปใช้บริการจากเครื่องใดในเครือข่ายที่ได้รับอนุญาต

โดยไม่ต้องนั่งอยู่หน้าเครื่องนั้นโดยตรง


ขึ้นตอนการใช้ FTP
1. ทำการเปิด Terminal
2. ไปใน Directrory หรือ Sub หรือที่อยู่ของ File เรา
3. ทำการ พิมพ์ FTP
5. ทำการ open ไปยังเครื่องอื่น
6. ทำการใส่ User และ Password
7. ทำการ Copy file ที่เราต้องการ ไปยังเครื่องอื่น หรือจากเครื่องอื่นมายังเครื่องเรา
เป็นการเสร็จขั้นตอนการ ftp
ถ้าเราไม่ใช้ FTP หรือเราปล่อย FTP ทิ้งไว้ มันจะ Disconnect
เราต้องเริ่มทำการ Connect FTP ใหม่

ขึ้นตอนการใช้ Telnet
1. พิมพ์ telnet
2. ทำการ open เครื่องที่เราต้องการ
3. ทำการใส่ User และ Password
ตอนนี้เราเป็นแค่ user เราต้องเป็นจาก user เป็น root (root ของเครื่องนั้น)
4. พิมพ์ ชื่อ root
5. ใส่ password
6. ไปใน Directrory หรือ sub ของ file ที่เราต้องการจะcopy file ไปไว้ที่อื่น หรือ ทำการ delete file นั้น
เมื่อทำเสร็จแล้วก็ลองดูว่าเรา copy file มาได้หรือยัง หรือ delete file นั้นหรือยัง

ตัวอย่าง ftp การ put
[root@li2 root]# ftp
ftp> open 192.168.101.9
Connected to 192.168.101.9 (192.168.101.9).
220 ready, dude (vsFTPd 1.1.0: beat me, break me)
Name (192.168.101.9:root): num
331 Please specify the password.
Password:
230 Login successful. Have fun.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 "/home/it/num"
ftp> mkdir program
257 "/home/it/num/program" created
ftp> cd program
250 Directory successfully changed.
ftp> pwd
257 "/home/it/num/program"
ftp> put pladao-linux-2.0.tar
local: pladao-linux-2.0.tar remote: pladao-linux-2.0.tar
227 Entering Passive Mode (192,168,101,9,138,106)
150 Go ahead make my day me the data.
226 File receive OK.
77455360 bytes sent in 92.4 secs (8.2e+02 Kbytes/sec)
ftp> ls
-rw-r--r-- 1 515 503 77451712 Aug 05 03:38 pladao-linux-2.0.tar
ftp>


ไฟล์ pladao-linux-2.0.tar จากเครื่องเราก็จะไปอยู่ที่เครื่องที่เรา ftp ไป

ตัวอย่าง ftp การ get
ftp> get tighvnc.htm
local: tighvnc.htm remote: tighvnc.htm
227 Entering Passive Mode (192,168,101,9,169,40)
150 Opening BINARY mode data connection for tighvnc.htm (10281 bytes).
226 File send OK.
10281 bytes received in 0.0117 secs (8.6e+02 Kbytes/sec)
ftp>
ไฟล์ tighvnc.htm ที่เราเอามาจากเครื่องอื่นก็จะมาอยู่ที่เครื่องเรา

ตัวอย่าง telnet
[root@li2 root]# telnet
telnet> open 192.168.101.9
Trying 192.168.101.9...
Connected to 192.168.101.9.
Escape character is '^]'.
Red Hat Linux release 8.0 (Psyche)
Kernel 2.4.20-18.8 on an i686
login: num
Password:
Last login: Tue Aug 5 10:47:21 from li2
-bash-2.05b$ su
Password:
[root@li9 root]# cd /home/it/num
[root@li9 num]# ls
topicie.gif

[root@li9 num]# cp topicie.gif /root/test/
[root@li9 num]# cd /root/test
[root@li9 test]# ls
topicie.gif
[root@li9 test]#


ไฟล์ topicie.gif ที่อยู่ใน sub /home/it/num ก็มาอยู่ที่ sub /root/test/ ด้วย

Download ไฟล์ใน Rapidshare แบบไม่ต้องรอนาน

อย่างที่รู้ๆกันอยู่ว่า ข้อมูลใน Website Rapidshare.com นั้น มีมากเหลือเกิน แต่วิธี Download ก็มีข้อจำกัดค่อนข้างมากเหมือนกัน เช่น

- Download ได้ครั้งละ 1 ไฟล์เท่านั้น ถ้าจะโหลดไฟล์ที่ 2 จะต้องรอเป็นเวลานาน (แก้ไขได้โดย : ตัด Internet หรือปิด Router แล้วโหลดอีกครั้ง จะโหลดไฟล์ที่ 2 ได้เลยไม่ต้องรอ)
- ต้องใส่ตัวเลขให้เหมือนกับภาพที่ให้ไว้ ถ้าใส่ไม่ตรงก็โหลดไม่ได้อีก
- ต้องรอเวลานาน กว่ารหัสตัวเลขจะขึ้นมาให้ใส่
- บางทีใส่รหัสตัวเลขถูกแล้ว แต่ก็ยังโหลดไม่ได้ เพราะ Slot หรือทางผ่านของข้อมูลเต็ม

ปวดหัว.. แต่ไม่ต้องกังวลอีกต่อไปแล้ว พี่มีวิธีที่ง่ายและได้ผลดีจะมาบอก ถ้าอยากจะโหลดข้อมูลจากเวปไซท์นี้



อุปกรณ์และโปรแกรมที่จำเป็น

1. จะต้องใช้ Firefox เป็น Browser (Internet Explorer ใช้ไม่ได้)
ถ้าไม่มีไปโหลดมาใช้ซะ



2. โหลด Add-on ตัวสำคัญที่ชื่อว่า Grease Monkey แล้ว Install

https://addons.mozilla.org/en-US/firefox/addon/748



3. โหลด Script สุดท้ายที่สำคัญ ที่จะใช้ร่วมกับ Grease Monkey Script นี้มีชื่อว่า Rapidshare Helper

http://userscripts.org/scripts/show/6763

ด้านขวามือบนจะมีคำสั่งให้ติดตั้ง (Install This Script)


วิธีใช้งาน

1. เมื่อไรที่เราพิมพ์ชื่อ Website Rapidshare.com หรือมีการ Copy Link เข้าไปไว้ในช่อง Address ของ Fire Fox โปรแกรมที่เราติดตั้งทั้งหมดที่แนะนำไว้ข้างบน จะเปลี่ยนหน้าจอของ Website Rapidshare ให้เป็นฉากสีดำดังภาพ



2. สิ่งแรกที่ต้องทำก็คือ ใส่ตัวเลขหรือตัวอักษรให้เหมือนกับภาพที่ให้มา ในปัจจุบันนี้ RapidShare จะมีตัวอักษรให้เลือกมากกว่า 4 ตัวแล้ว และตัวอักษรแต่ละตัวก็จะมีรูปภาพแฝงอยู่ด้วยเช่น แมวหรือสุนัขหรืออื่นๆ การใส่รหัสตัวอักษรให้เหมือนกับภาพ จะต้องใส่รหัส 4 ตัว ที่มีรูปภาพที่กำหนดอยู่ด้วย เช่นใส่รหัสเฉพาะที่มีภาพแมวแฝงอยู่ข้างใน แต่การใช้เทคนิควิธีนี้ เราอาจจะไม่เห็นภาพที่กำหนด (รูปแมว) แต่ก็เดาได้ไม่ยากว่าจะต้องใส่ตัวเลขไหน (ก็แค่ดูว่ามีรูปอะไรที่เหมือนกันอยู่ 4 ตัวเท่านั้น แล้วก็ใส่รหัสนั้นลงไป)

หลังจากใส่รหัสแล้ว ก็แค่รอให้ตัวเลข ลดลงมาเหลือ 0 แค่นั้นเอง ถ้า้เรากดปุ่ม Download ก่อนเวลาจะลดลงเหลือ 0 จะมีหน้าจอเตือนว่า " Download-Ticket not ready. JavaScript error?" และจะยัง Download ไม่ได้ จะต้องย้อนกลับไปที่หน้าเดิมก่อน และรอเวลาให้ตัวเลขลดลงเหลือ 0 ก็จะมีหน้าต่างให้ Download ขึ้นมาโดยอัตโนมัติ (ต้องใส่ตัวเลขถูกต้องด้วย)

3. สามารถเลือก Server ที่ต้องการ Download จาก List ที่มีให้ด้วย ถ้ามีหน้าต่าง Download ขึ้นมาแล้ว Download ได้ความเร็วไม่ดี ให้รีบกด Cancel การ Download นั้นทันที และเปลี่ยน Server ใหม่ การทำแบบนี้จะช่วยให้เลือก Server ที่มีความเร็วมากที่สุดได้ (โดยไม่ต้องเสียเวลารอซ้ำซ้อน)

หมายเหตุ
อย่า ลืมว่า ถ้าเจอหน้าต่างที่ขึ้นข้อความ "Download - Ticket nicht bereit. JavaScript Fehler ?" หรือ " Download-Ticket not ready. JavaScript error?" ให้กด back ย้อนกลับไปหน้าสีดำก่อน 1 ครั้ง และไม่ต้องทำอะไร ให้รอจนกว่าตัวเลข ที่บอกไว้ด้านบนสุด จะลดลงเหลือ 0 จะมีหน้าต่างให้เซฟไฟล์ขึ้นมาอัตโนมัติ (ไม่ต้องกดปุ่ม Download นะ.. ปล่้อยไว้เฉยๆ)

เท่านี้เองเราก็จะได้ข้อมูลจาก RapidShare ตามต้องการแล้วครับ

Webmaster BPANDSM.CO.CC

วิธีแก้ MSN Error Code 8100030d

วันนี้เป็นวันที่ ดวงดีมาก ๆ (ประชด) msn เข้าไม่ได้ T T เจอ error code 8100030d กว่าจะหาวิธีแก้ได้
วันนี้ผมเลยเอาวิธีแก้ msn error code 8100030d มาบอกกันเพื่อจะได้ chat กับสาว ๆ ได้ไวขึ้น

วิธีการง่าย ๆ ครับ ไม่ต้อง Format ไม่ต้อง Fdisk ไม่ต้อง uninstall ไม่ต้องลงวินโดว์ใหม่ (ขนาดนั้นเลยเหรอ)

เข้าไปที่

C:\Documents and Settings\ ชื่อ user ที่คุณ logon ในเครื่อง \Local Settings\Application Data\Microsoft\Windows Live Contacts\

ยกตัวอย่างของผม

C:\Documents and Settings\Administrator\Local Settings\Application Data\microsoft\Windows Live Contacts

ปิดโปรแกรม msn แล้ว ก็ลบ key ข้างในทั้งหมดเลยครับ ตัวอย่างคีย์ เช่น

{b9742070-0aee-40c8-a394-b609e9200c39} ประมาณนี้ลบทิ้งให้หมดเลยนะครับ

จากนั้นก็ลองเปิด msn แล้วก็ login ดูนะครับ ก็จะใช้ได้ตามปกติ (ย้ำว่าต้องปิดโปรแกรม msn ก่อนลบนะไม่งั้นลบได้ไม่หมดจ้า)

Webmaster BPANDSM.CO.CC

Wednesday, April 29, 2009

ลบไฟล์ขยะ หลังจากเลิกเล่นเน็ต ช่วยลดปัญหาไวรัสได้

เวลาเราเข้าเว็บไซต์ต่างๆ โปรแกรม IE ก็จะทำการ download ข้อมูลมาเก็บไว้ในเครื่องของเราก่อน จากนั้นถ้าเราเลิกเล่น ไฟล์เหล่านี้ก็จะค้างในเครื่องของเรา นอกจากปัญหาไฟล์ในเครื่องที่อาจจะเพิ่มมากขึ้น ทำให้เนื้อที่ใน harddisk ของเราไม่เพียงพอแล้ว อาจมีไวรัสแอบแฝงเข้ามาในเครื่องคอมฯ ของเราได้ด้วย ดังนั้นวิธีการจัดการอย่างหนึ่งที่ง่ายก็คือ กำหนดให้โปรแกรม IE ลบไฟล์ขยะเหล่านี้อัตโนม้ติทุกครั้งที่ปิดโปรแกรม สำหรับขั้นตอนก็สั้นๆ ครับ เพียงทำตามรายละเอียดข้างล่างนี้
วิธีกำหนดให้ลบไฟล์ขยะจากอินเตอร์เน็ตแบบอัตโนมัติ


คลิกเมนู Tools
เลือกคำสั่ง Internet Options
คลิกเลือกแท็ป Advanced
เลื่อนลงมาที่หัวข้อ Security
จากนั้น คลิกหัวข้อ Empty Temporaly Internet Files Folder when browser is closed
กดปุ่ม Apply อีกครั้งเพื่อยืนยัน
แล้วนี้ก็เสร็จเรียบร้อยแล้ว
ข้อมูลเพิ่มเติม::
ส่วนดีของการที่โปรแกรม IE มีการ download ไฟล์มาเก็บไว้ในเครื่องของเรา ทำให้การใช้งานในครั้งต่อไป สามารถเปิดดูรายละเอียดในเว็บนั้นๆได้เร็วขึ้น เนื่องจากไม่ต้องเสียเวลาในการ download ซ้ำอีก อย่างไรก็ตาม ควรเปรียบเทียบผลดี ผลเสียกันเอาเองน่ะครับ แต่ถ้าให้ผมฟันธงเลย ขอตอบว่าลบไปเลยดีกว่าครับ..


ทิปจาก : www.it-guides.com

วิธีกำจัด Windows Messenger ออกไปจากวินโดว์

หนึ่งในปัญหาที่ก่อความรำคาญให้กับผู้ใช้ Windows XP มากที่สุดอย่างหนึ่งก็คือ โปรแกรม Windows Messenger ที่จะ Auto Run มากับเครื่องแบบ อัตโนมัติ ไม่ว่าคุณจะต้องการมันหรือไม่ เพียงแค่ Add User และ Log on เข้าไป Windows Messenger ก็จะปรากฎขึ้นมาให้คุณตั้งค่าต่างๆ แบบไม่ได้ตั้งตัว มันจะ Log on เข้า .net Passport แบบไม่ถาม online แบบไม่บอกกล่าว ซึ่งปัญหาเหล่านี้เราสามารถหยุดมันได้โดย

คลิก Start > Run จากนั้นพิมพ์ regedit จากนั้นให้ไปที่

Hkey_Current_User\Software\Microsoft\Windows\CurrentVersion\Run

ในโฟลเดอร์ Run ให้มองหาไอคอนของ MSMSGS ที่อยู่ทางด้านขวาของหน้าต่าง เมื่อพบแล้วให้ลบทิ้งซะ จากนั้นให้รีสตาร์ท เครื่องโปรแกรม Windows Messenger ก็จะไม่ขึ้นมากวนใจอีกเมื่อเปิดเครื่องมาใช้งานทุกครั้งครับ

ไดรฟ์ลับ เปิดได้เฉพาะเรา!!!

หลายครั้งที่นายเกาเหลาได้แนะนำโปรแกรมพวกซ่อนไฟล์โฟลเดอร์ให้เพื่อนๆ ได้เอาไปใช้งาน แต่ก็มีเพื่อนบางคนอยากให้นายเกาเหลาหาโปรแกรมซ่อนไดรฟ์มาแนะนำบ้าง ประมาณว่าไดรฟ์นี้อุดมสมบูรณ์ไปด้วยข้อมูลลับ
สำหรับโปรแกรมที่ช่วยเราคือ Steganos Privacy Suite 2008 (www.steganos.com) โดยเจ้าโปรแกรมตัวเก่งนี้เป็นโปรแกรมเสียเงินเล็กน้อย หากจะลองใช้ของฟรีก็ทำได้แต่จะถูกจำกัดความสามารถบางอย่างเอาไว้ ซึ่งการสมัครขอใช้ของฟรีจะต้องมีอีเมล์ในการสมัคร และคลิกที่ Test For Free ในหัวข้อของโปรแกรมที่ต้องการลอง คือ Steganos Privacy Suite 20

นายเกาเหลาขอกระโดดข้ามมาที่ขั้นตอนที่ได้ดาวน์โหลดโปรแกรมมาเรียบร้อย โดยหลังจากที่ติดตั้งโปรแกรมเสร็จ ก็ให้เปิดโปรแกรม เริ่มต้นให้คลิกไอคอน Safe คลิกปุ่ม + แล้วคลิกปุ่ม Next เมื่อเจอคำสั่ง I want to create a new secure drive ให้คลิกเลือกเพื่อสร้างไดรฟ์ลับสำหรับเก็บข้อมูลส่วนตัวขึ้นมาใหม่ คลิก Next จากนั้นให้ตั้งชื่อไดรฟ์ลับ คลิก Next คลิกปุ่ม Browse เพื่อเลือกโฟลเดอร์สำหรับจัดเก็บไฟล์ .sle (ไฟล์ของไดรฟ์ลับ) เลือกโฟลเดอร์ที่ต้องการ แล้วกำหนดชื่อให้ไฟล์ .sle หรือจะใช้ชื่อเดียวกับชื่อไดรฟ์ก็ได้ คลิก Save และ Next เราจะเข้าสู่หน้าจอสำหรับกำหนดขนาดไดรฟ์ลับ ให้ใช้เมาส์เลื่อนตามใจชอบแล้วคลิก Next ก่อนที่จะกำหนดรหัสผ่าน และกำหนดระดับความยากง่ายในการปลดล็อก คลิก Next รอสักครู่โปรแกรมก็สร้างไดรฟ์ลับให้เรา เมื่อเรียบร้อยให้คลิก Finish โปรแกรมก็จะแจ้งว่าไดรฟ์ลับได้ทำงานแล้ว เวลาจะเปิดใช้งานเพื่อนๆ จะต้องเปิดผ่านโปรแกรม steganos เท่านั้น

นอกจากนี้นายเกาเหลายังไม่ขอแนะนำให้คุณซ่อนไดรฟ์หลักอย่าง C: เพราะหากเกิดปัญหาขึ้นกับคอมพ์เวลาจะกู้ข้อมูลจะลำบากมากนะจะบอกให้

ทิปจาก : www.arip.co.th

รวมคำสั่ง RUN ที่ใช้บ่อย ๆ (สำคัญยะ)

เรียกโปรแกรม Accessibility Options —> access.cpl
เรียกโปรแกรม Add Hardware —> hdwwiz.cpl
เรียกโปรแกรม Add/Remove Programs —> appwiz.cpl
เรียกโปรแกรม Administrative Tools control —> admintools
ตั้งค่า Automatic Updates —> wuaucpl.cpl
เรียกโปรแกรม Bluetooth Transfer Wizard —> fsquirt
เรียกโปรแกรม เครื่องคิดเลข (Calculator) —> calc
เรียกโปรแกรม Certificate Manager —> certmgr.msc
เรียกโปรแกรม Character Map —> charmap
เรียกโปรแกรม ตรวจสอบดิสก์ (Check Disk Utility) —> chkdsk
เรียกดูคลิปบอร์ด (Clipboard Viewer) —> clipbrd
เรียกหน้าต่างดอส (Command Prompt) —> cmd
เรียกโปรแกรม Component Services —> dcomcnfg
เรียกโปรแกรม Computer Management —> compmgmt.msc
เรียกดู/ตั้ง เวลาและวันที่ —> timedate.cpl
เรียกหน้าต่าง Device Manager —> devmgmt.msc
เรียกดูข้อมูล Direct X (Direct X Troubleshooter) —> dxdiag
เรียกโปรแกรม Disk Cleanup Utility —> cleanmgr
เรียกโปรแกรม Disk Defragment —> dfrg.msc
เรียกโปรแกรม Disk Management —> diskmgmt.msc
เรียกโปรแกรม Disk Partition Manager —> diskpart
เรียกหน้าต่าง Display Properties control desktop —> desk.cpl
เรียกหน้าต่าง Display Properties เพื่อปรับสีวินโดวส์ —> control color
เรียกดูโปรแกรมช่วยแก้ไขปัญหา (Dr. Watson) —> drwtsn32
เรียกโปรแกรมตรวจสอบไดร์ฟเวอร์ (Driver Verifier Utility) —> verifier
เรียกดูประวัติการทำงานของเครื่อง (Event Viewer) —> eventvwr.msc
เรียกเครื่องมือตรวจสอบไฟล์ File Signature Verification Tool —> sigverif
เรียกหน้าต่าง Folders Options control —> folders
เรียกโปรแกรมจัดการ Fonts —> control fonts
เปิดไปยังโฟลเดอร์ Fonts (Fonts Folder) —> fonts
เรียกเกม Free Cell —> freecell
เปิดหน้าต่าง Game Controllers —> joy.cpl
เปิดโปรแกรมแก้ไข Group Policy (ใช้กับ XP Home ไม่ได้) —> gpedit.msc
เรียกโปรแกรมสร้างไฟล์ Setup (Iexpress Wizard) —> iexpress
เรียกโปรแกรม Indexing Service —> ciadv.msc
เรียกหน้าต่าง Internet Properties —> inetcpl.cpl
เรียกหน้าต่าง Keyboard Properties —> control keyboard
แก้ไขค่าความปลอดภัย (Local Security Settings) —> secpol.msc
แก้ไขผู้ใช้ (Local Users and Groups) —> lusrmgr.msc
คำสั่ง Log-off —> logoff
เรียกหน้าต่าง Mouse Properties control mouse main.cpl
เรียกหน้าต่าง Network Connections control netconnections —> ncpa.cpl
เรียกหน้าต่าง Network Setup Wizard —> netsetup.cpl
เรียกโปรแกรม Notepad —> notepad
เรียกคีย์บอร์ดบนหน้าจอ (On Screen Keyboard) —> osk
เรียกหน้าต่าง Performance Monitor —> perfmon.msc
เรียกหน้าต่าง Power Options Properties —> powercfg.cpl
เรียกโปรแกรม Private Character Editor —> eudcedit
เรียกหน้าต่าง Regional Settings —> intl.cpl
เรียกหน้าต่าง Registry Editor —> regedit
เรียกโปรแกรม Remote Desktop —> mstsc
เรียกหน้าต่าง Removable Storage —> ntmsmgr.msc
เรียกหน้าต่าง Removable Storage Operator Requests —> ntmsoprq.msc
เรียกดู Policy ที่ตั้งไว้ (ใช้กับ XP Home ไม่ได้) —> rsop.msc
เรียกหน้าต่าง Scanners and Cameras —> sticpl.cpl
เรียกโปรแกรม Scheduled Tasks control —> schedtasks
เรียกหน้าต่าง Security Center —> wscui.cpl
เรียกหน้าต่าง Services —> services.msc
เรียกหน้าต่าง Shared Folders —> fsmgmt.msc
คำสั่ง Shuts Down —> shutdown
เรียกหน้าต่าง Sounds and Audio —> mmsys.cpl
เรียกเกม Spider Solitare —> spider
แก้ไขไฟล์ระบบ (System Configuration Editor) —> sysedit
แก้ไขการตั้งค่าระบบ (System Configuration Utility) —> msconfig
ตรวจสอบระบบด้วย System File Checker Utility (เริ่มทันที) —> sfc /scannow
ตรวจสอบระบบด้วย System File Checker Utility (เริ่มเมื่อบู๊ต) —> sfc /scanonce
เรียกหน้าต่าง System Properties —> sysdm.cpl
เรียกหน้าต่าง Task Manager —> taskmgr
เรียกหน้าต่าง User Account Management —> nusrmgr.cpl
เรียกโปรแกรม Utility Manager —> utilman
เรียกโปรแกรม Windows Firewall —> firewall.cpl
เรียกโปรแกรม Windows Magnifier —> magnify
เรียกหน้าต่าง Windows Management Infrastructure —> wmimgmt.msc
เรียกหน้าต่าง Windows System Security Tool —> syskey
เรียกตัวอัพเดตวินโดวส์ (Windows Update) —> wupdmgr
เรียกโปรแกรม Wordpad —> write

การทำความสะอาดจอ LCD

สำหรับผู้ใช้มอนิเตอร์จอแบนที่เป็น LCD (หรือโน้ตบุ๊ก) พอนานๆ ไปคุณจะพบว่า หน้าจอมีจุดด่าง หรือรอยขีดข่วนเกิดขึ้น ซึ่งทำให้ภาพที่ปรากฏบนหน้าจอไม่ชัดเจน ครั้งนี้ขอแนะนำวิธีง่ายๆ ในการดูแลหน้าจอให้สะอาดใหม่ใสปิ๊งอยู่เสมอด้วยตัวคุณเองครับก่อนจะทำความสะอาดขั้นแรกให้คุณปิดการทำงานของจอ LCD ก่อน เพื่อว่าคุณจะได้สามารถมองเห็นรอยเปื้อน หรือร่องรอยของจุดด่างต่างๆ ได้อย่างชัดเจน จากนั้นหาผ้าฝ้ายที่ “อ่อนนุ่ม” แช่น้ำอุ่น แล้วบิดให้แห้งพอสมควร เช็ดเบาๆ บนหน้าจอจากบนลงล่าง หรือจากซ้ายไปขวา (ตามแต่ความถนัดของคุณ) แต่อย่าใช้วิธีเช็ดเป็นวงกลมโดยเด็ดขาด!!! หากปฎิบัติตามด้วยวิธีข้างต้นแล้ว ไม่สามารถทำให้หน้าจอดูสะอาดขึ้นมาได้ ให้คุณลองใช้น้ำส้มสายชูผสมกับน้ำสะอาดแทน อย่างไรก็ตาม หลักการทำความสะอาดหน้าจอ LCD ก็คือ ผ้าฝ้ายที่ใช้เช็ดจะต้องล้างให้สะอาดก่อนลงมือเช็ดทุกครั้ง และไม่ควรใช้การพ่นน้ำ (หรือ น้ำ + น้ำส้มสายชู) เข้าไปที่หน้าจอโดยตรง แล้วตามด้วยผ้าแห้งเช็ดถูเข้าไปอีกที ซึ่งด้วยวิธีนี้นอกจากจะไม่ช่วยให้หน้าจอของคุณสะอาดขึ้นแล้ว ยังอาจทำให้หน้าจอมีปัญหาการแสดงผลในอนาคตได้อีกด้วย หลีกเลี่ยงการใช้น้ำยาเช็ดกระจก หรือชุดทำความสะอาดที่ส่วนผสมของแอมโมเนีย เนื่องจากมันจะทำให้พื้นผิวหน้าจอ LCD กลายเป็นสีเหลือง (สังเกตได้จากสีขาวที่เห็นในหน้าจอจะเห็นเป็นสีเหลืองอ่อนๆ) หวังว่า คำแนะนำง่ายๆ ต่อไปนี้ คงจะเป็นประโยชน์กับผู้ใช้จอ LCD ทุกท่านนะครับ

Thursday, January 29, 2009

Regular Expression ใน PHP

Regular expressions ดูเหมือนจะเป็นคำที่น่ากลัวเอามาก ๆ สำหรับนักโปรแกรมมือใหม่ หลายคนไม่อยากรู้จักมันเลยเสียด้วยซ้ำ แต่ขอบอกว่า จริง ๆ แล้วมันไม่ยากแล้วก็มีประโยชน์มากด้วย ไม่ว่าจะเป็น JavaScript หรือ Perl ต่างก็ใช้กันทั้งนั้น จึงไม่เสียหาย ถ้าจะทำความรู้จักกับมันไว้บ้าง

Regular expression เป็นการกำหนดรูปแบบเพื่อการค้นหาข้อความหรือตัวอักษรว่า มีอยู่ในข้อความที่กำหนดหรือไม่ เช่น เราอยากรู้ว่า ข้อความที่มีคนกรอกแบบฟอร์มเข้ามาบนเว็บของเรา มีคำหยาบหรือไม่ เราก็จะใช้ Regular expression นี่แหละ เป็นตัวตรวจสอบ นอกจากจะใช้ตรวจสอบแล้ว ยังสั่งแก้ได้อีกด้วย เช่น จะแก้คำว่า ประสิทธิ์ เป็นคำว่า ประสาท ก็ทำได้ โดยไม่ต้องไปค้นหาเอง แต่สั่งให้โปรแกรมค้นหา โดยใช้ Regular expression นี่แหละ แล้วแทนที่คำคำนั้น ด้วยคำที่เราต้องการ

เห็นไหมล่ะว่า Regular expression มีประโยชน์อย่างไร



Regular expression คืออะไร?

ถ้านึกถึงโปรแกรมพิมพ์เอกสาร ที่มีฟังชั่นให้เราสามารถค้นและแก้ไขคำที่พิมพ์โดยการสั่ง replace ก็พอจะเข้าใจ concept ของ Regular expression แล้ว เพียงแต่ว่า Regular expression ทำได้มากกว่าเยอะ นักเขียนโปรแกรมบนเว็บส่วนมากใช้ Regular expression เพื่อตรวจสอบ email เบื้องต้น ว่า ผู้ใช้พิมพ์ email เข้ามาถูกรูปแบบหรือไม่ บางครั้งก็ใช้ในการตรวจสอบรูปแบบ เช่น หมายเลขประจำตัวนักศึกษา ซึ่งมีรูปแบบแน่นอน ถ้าพิมพ์มาไม่ถูกรูปแบบก็แสดงว่าพิมพ์ผิด เป็นต้น

และที่ใช้กันบ่อยมากบนเว็บก็คือ การตรวจสอบข้อมูลบนฟอร์ม ความจริงแล้ว PHP มีฟังชั่นสำหรับตรวจสอบข้อความ (string) อยู่เยอะเหมือนกัน เช่น การตัดช่องว่างหน้าหรือหลังคำ ก็ใช้ฟังชั่น trim เป็นต้น แต่ว่าเสน่ห์ของ Regular expression อยู่ที่ความง่าย ใช่แล้ว Regular expression ใช้ง่าย ไม่ต้องเขียนโปรแกรมยืดยาวก็ทำได้เหมือนกัน ถ้าพอใช้คล่องแล้วก็จะพูดว่า แหมรู้ยังงี้ ใช้ Regular expression เสียก็ดี

PHP** มีฟังชั่นที่ใช้ Regular expression อยู่ทั้งหมด 6 ฟังชั่น การใช้ฟังชั่นพวกนี้ เราต้องใส่ argument ที่เป็น Regular expression ฟังชั่นทั้ง 6 ก็ได้แก่:

· ereg: ใช้สำหรับค้นหา คำ หรือ ตัวอักษรที่มีในข้อความที่ต้องการ

· ereg_replace: ใช้สำหรับค้นหาคำ แล้วแทนที่ด้วยคำที่กำหนด

· eregi: ใช้เหมือนกับ ereg แต่ case sensitive นั่นคือ ถือว่า ตัวอักษรภาษาอังกฤษตัวเล็กและตัวใหญ่ (capital letters) เป็นคนละตัวกัน

· eregi_replace: ใช้เหมือนกับ eregi แต่ case sensitive

· split: ใช้ค้นหาคำที่กำหนด และคืนค่าในลักษณะ array

· spliti: ใช้เหมือนกับ split แต่ case sensitive



ทำไมจึงต้อง Regular expressions?

ถ้าท่านเขียนฟังชั่นเองเพื่อตรวจสอบข้อความต่าง ๆ ละก็ หันมาใช้ Regular expression ดีกว่า ลองสำรวจดูซิว่า ท่านทำสิ่งต่อไปนี้หรือไม่

· ท่านเขียนฟังชั่นเพื่อตรวจสอบทีละตัวว่า ในฟอร์มที่ผู้ใช้พิมพ์เข้ามา มีคำแปลกปลอม คำหยาบ หรือตัวอักษรบางอย่าง เช่น เครื่องหมาย @ ในอีเมล์ เป็นต้น

· ท่านเขียนฟังชั่นวน loop เพื่อตรวจสอบข้อความ และแทนที่คำที่พบด้วยคำที่กำหนด

ถ้าใช่ แสดงว่าโปรแกรมของท่านยังมีข้อที่จะปรับปรุงให้ดีขึ้นได้ การเขียนฟังชั่นเองเพื่อให้ทำทั้งสองอย่างข้างต้น นักโปรแกรมทั่วไปเขาไม่นิยมทำกัน นอกจากนี้ยังเป็นการทำให้โปรแกรมทำงานช้าลงอีกด้วย ลองดูตัวอย่างสักสองตัวอย่าง ซึ่งเป็นการตรวจสอบอีเมล์เหมือนกัน

ตัวอย่างที่ 1




function validateEmail($email)

{

$isAtSymbol = strpos($email, "@");

$isDot = strpos($email, ".");



if($isAtSymbol && $isDot)

return true;

else

return false;

}



?>

ตัวอย่างที่ 2




function validateEmail($email)

{

return eregi('^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.([a-zA-Z]{2,4})$',$email);

}



?>

ตัวอย่างแรก ดูเข้าท่าดี อ่านเข้าใจง่าย ทำงานเป็นขั้นตอน แต่ลองเปรียบเทียบประสิทธิภาพการทำงานกับตัวอย่างที่ 2 จะเห็นว่า แตกต่างกัน ตัวอย่างที่ 2 ใช้เพียงบรรทัดเดียวในการตรวจสอบอีเมล์ ในขณะที่ตัวอย่างที่ 1 ใช้ตั้งหลายบรรทัด

ตัวอย่างที่ 2 เรียกใช้ฟังชั่น ereg ถ้าหากว่า ตรวจสอบแล้วถูกต้อง ก็จะคืนค่าที่เป็นจริง แต่ถ้าตรวจสอบแล้วไม่เป็นไปตามที่ Regular expression ที่กำหนดไว้ ก็จะคืนค่าที่เป็นเท็จ



รูปแบบ ไวยากรณ์ ของ Regular expression

รูปแบบของ Regular expression ที่ควรรู้จัก มีดังนี้



1. การกำหนดว่า ต้องเป็นตัวแรกของข้อความ:

เช่นเราต้องการตรวจสอบว่า คำที่กำลังตรวจสอบ ขึ้นต้นด้วยคำว่า “ความ” หรือไม่ เราจะใช้เครื่องหมาย ^ เพื่อระบุว่า ต้องขึ้นต้นด้วยคำคำนี้ ตัวอย่าง



อย่างนี้ ค่าที่ได้ คือ จริง หรือ true



อย่างนี้ จะได้ค่าที่เป็นเท็จ หรือ false เพราะ เรากำหนดให้ต้องขึ้นต้นด้วยคำว่า “ความ” แต่ในคำที่ให้ค้นหา ขึ้นต้นด้วยคำว่า “คน” จึงทำให้ค่าที่ได้เป็นเท็จ



2. การกำหนดว่า ต้องเป็นตัวสุดท้ายของข้อความ:

เราใช้เครื่องหมาย $ เพื่อดูว่า ข้อความที่จะค้นหานั้น ลงท้ายด้วยคำที่กำหนดหรือไม่





จะได้ค่าที่เป็นจริง เพราะ ข้อความที่นำมาค้น ลงท้ายด้วยคำว่า “ความ”



จะได้ค่าที่เป็นเท็จ หรือ false



3. การค้นหาตัวอักษร:

ถ้าต้องการระบุว่าจะต้องมีตัวอักษรจะเป็นตัวเลขหรือตัวอักษรก็ได้ แต่ไม่ใช่ช่องว่าง เราจะใช้ จุด เช่น



จะได้ค่าที่เป็นจริง



จะได้ค่าที่เป็นเท็จ เพราะสิ่งที่นำมาค้นหาไม่มีอะไรเลย



4. การกำหนดว่า อาจจะมีตัวอักษรที่กำหนดหรือไม่ก็ได้

เราใช้เครื่องหมาย * เพื่อบอกว่าอาจจะมีหรือไม่มีก็ได้







ทั้งสองตัวอย่าง จะให้ค่าที่เป็นจริง เพราะเครื่องหมาย * จะบอกว่ามีตัว “ก” หรือไม่ก็ได้

มีอีกวิธีหนึ่งที่จะระบุว่า ให้มีตัวอักษรนั้น ในคำหรือไม่ วิธีนี้เราจะใช้เครื่องหมาย ? เช่น



เป็นการบอกว่า คำที่นำมาค้นหา อาจจะมีตัว ก ไก่ หรือไม่ ก็ได้



บางคนอาจจะนึกถามอยู่ในใจว่า แล้วมันมีประโยชน์อย่างไร เพราะมีก็ได้ ไม่มีก็ได้ ไม่เห็นจะแตกต่างอะไรเลย ก็เหมือนกันนั่นแหละ ก็ต้องขอบอกว่า มันมีประโยชน์ตรงที่เราสามารถกำหนดทางเลือกได้ เช่น เราจะตรวจสอบการป้อนข้อมูลตัวเลขว่าผู้ใช้โปรแกรมป้อนเข้ามาถูกหรือไม่ เรารู้ว่าตัวเลขสามารถพิมพ์ได้หลายแบบ บางทีก็มีเครื่องหมายคอมม่าหลังหลักพัน บางทีก็ไม่มี ซึ่งถูกทั้งสองรูปแบบ อย่างนี้ เราก็กำหนดให้เครื่องหมายคอมม่า มีก็ได้ไม่มีก็ได้ ถูกทั้งสองอย่าง เราก็ใช้เครื่องหมายนี้กำกับไว้ข้างหลังเครื่องหมายคอมม่าเสียนั่นเอง ตอนท้ายจะมีตัวอย่างให้ดู เป็นการกำหนดว่า จะพิมพ์เป็นเลขจำนวนเต็ม หรือทศนิยม ก็ได้ คือ มีจุดหรือไม่มีจุดต่อท้าย ก็ได้ โดยการใช้เครื่องหมาย ? นี่แหละ



5. การกำหนดให้มีตัวอักษรที่กำหนด อย่างน้อย 1 ตัว

เราใช้เครื่องหมาย + เพื่อระบุว่า จะต้องมีตัวอักษรนั้นอย่างน้อย 1 ตัว เช่น



จะได้ค่าที่เป็นจริง เพราะคำว่า “วิธีการทำงาน” มีตัว ก ไก่ รวมอยู่ด้วย โดยไม่บังคับว่าจะอยู่ที่ไหนในคำ



ตัวอย่างข้างต้นจะให้ค่าที่เป็นเท็จ เพราะคำว่า “วิธีทำงาน” ไม่มีตัว ก ไก่ อยู่เลย



6. การตรวจสอบช่องว่าง

การตรวจสอบช่องว่าง ให้ใช้ [[:space:]] หรืออาจจะใช้ “ “ แทนก็ได้ แต่การใช้ :space: ซึ่งเป็น class ของ Posix จะหมายความรวมถึง เครื่องหมายอื่น ๆ เช่น tab เครื่องหมายขึ้นบรรทัดใหม่ รวมทั้งการเว้นวรรคด้วย ตัวอย่าง



จะให้ค่าที่เป็นจริง แต่



จะให้ค่าที่เป็นเท็จ เพราะไม่มีช่องว่างเลย



7. การตรวจสอบเป็นช่วง

ถ้าต้องการตรวจสอบเป็นช่วง เราจะใช้เครื่องหมาย [ และ ] เพื่อคร่อมช่วงที่ต้องการ เช่น ต้องการระบุว่า ต้องเป็นระหว่างเลข 0 – 9 เท่านั้น เราจะเขียนว่า [0-9] ลองดูตัวอย่างต่อไปนี้




// กำหนดให้มีเฉพาะตัวอักษรภาษาไทยเท่านั้น มีตัวเลขที่เป็นภาษาไทยได้ แต่ห้ามมีตัวอักษรภาษาอังกฤษ

echo ereg("^[ก-๙]+$", "ทองจุล๐๑๒๓"); // ให้ค่าที่เป็นจริง



?>



ในกรณีของตัวอักษรภาษาไทย ถ้าจะกำหนดไม่ให้มีตัวเลข ต้องกำหนดค่า ระหว่าง ตัว ก ไก่ และ ไม้ตรี ถ้ากำหนดตั้งแต่ ตัว ก-ฮ จะทำให้มีสระไม่ได้ ซึ่งก็จะทำให้ไม่สามารถสะกดตัวเป็นคำได้อย่างสมบูรณ์



ขอให้สังเกตว่าในกรณีนี้ก็จะมีวรรคไม่ได้เหมือนกัน เพราะตัวอักษร ช่องว่าง หรือ space อยู่นอกขอบเขตที่กำหนด ถ้าจะให้มี ก็ต้องเพิ่มเข้าไป เช่น





ในกรณีตัวเลข ถ้าต้องการตรวจดูว่า ข้อความที่กำหนดมีเฉพาะตัวเลขเท่านั้น ไม่ว่าจะเป็นเลขไทย หรือเลขฝรั่ง ให้ตรวจสอบดังนี้



จะได้ค่าที่เป็นจริง เครื่องหมาย ^ แสดงว่าข้อความที่นำมาค้น ต้องขึ้นต้นด้วย เลข 0-9 หรือ ๐-๙ เครื่องหมาย + แสดงว่า ต้องมี จะเป็นช่องว่างมาเฉย ๆ ไม่ได้ และเครื่องหมาย $ แสดงว่า ต้องจบลงด้วยตัวเลขเช่นเดียวกัน



8. การจัดกลุ่มคำ หรือ ข้อความ

ถ้าต้องการจัดกลุ่มคำหรือข้อความให้ใช้เครื่องหมายวงเล็บ () คร่อม เช่น



ข้อความข้างต้น กำหนดให้จะต้องขึ้นต้นด้วยคำว่า ทองจุล หรือ ปรีชา เพราะมีเครื่องหมาย ^ และต่อด้วยอะไรก็ได้ ดังนั้น คำว่า ปรีชา สุขเกษม จึงให้ค่าที่เป็นจริง แต่ถ้าเป็นชื่อ บำรุง โตรัตน์ ก็จะให้ค่าเป็นเท็จ เพราะไม่อยู่ในเงื่อนไขที่ต้องการ เครื่องหมาย | หมายความว่า อย่างใดอย่างหนึ่ง



9. การตรวจสอบเครื่องหมาย หรือ สัญลักษณ์พิเศษ

เนื่องจากใน Regular expression ใช้เครื่องหมายในไวยากรณ์ ดังนั้นถ้าเราต้องการจะให้ค้นหาเครื่องหมายดังกล่าวในข้อความที่กำหนด จึงจำเป็นต้องบอกให้โปรแกรมรู้ว่า เครื่องหมายที่ใช้นี้ ไม่ใช่เป็นส่วนหนึ่งของไวยากรณ์ ลักษณะนี้ เราเรียกว่าเป็นการ escaping เราจะใช้เครื่องหมาย \ ใส่ไว้หน้าตัวอักษรพิเศษ หรือ สัญลักษณ์นั้น ๆ เช่น \* เป็นการบอกว่า ให้ตรวจหาเครื่องหมาย * ในคำที่ส่งมาเพื่อค้นหา เป็นต้น ในกรณีที่ต้องการให้คำว่า ปรีชา ต้องขึ้นต้นด้วยเครื่องหมาย | เราทำดังนี้



ข้อความข้างบนจะให้ค่าเป็นเท็จ เพราะเรากำหนดให้คำว่า ปรีชา ต้องขึ้นต้นด้วย | ถ้าเปลี่ยนคำว่า ปรีชา สุขเกษม เป็น |ปรีชา สุขเกษม ก็จะได้ค่าที่เป็นจริง

ตัวอักษร หรือสัญลักษณ์พิเศษที่ต้อง escape มีดังนี้ ^, $, (, ), ., [, |, *, ?, +, \, และ {



10. สัญลักษณ์ของ Regular expression สรุปได้ดังนี้



^
คำ/อักษรที่อยู่หน้าเครื่องหมายนี้ ต้องเป็นคำขึ้นต้นของข้อความที่นำมาตรวจสอบเช่น “^การ” เป็นการกำหนดว่า คำที่นำมาตรวจสอบต้องขึ้นต้นด้วยคำว่า การ เช่น “การทำดี” “การบ้าน” เป็นต้น คำพวกนี้จะผ่านการทดสอบ




$
คำ/อักษรที่อยู่หน้าเครื่องหมายนี้ ต้องอยู่ตอนท้ายของข้อความที่นำมาตรวจสอบ เช่น “มา$” จะถือว่าคำต่อไปนี้ถูกตามเงื่อนไข “ตามา” “ขอขมา” หรือแม้แต่คำว่า “หมา” แต่คำว่า “ทำดี” จะไม่ผ่าน เพราะไม่ได้ลงท้ายด้วยคำว่า “มา” ตามเงื่อนไขนั่นเอง

+
คำ/อักษรที่อยู่หน้าเครื่องหมายนี้ ต้องมีปรากฏในคำที่นำมาตรวจสอบ อย่างน้อย 1 ตัว เช่น “ท+” จะถือว่าคำต่อไปนี้ผ่านการตรวจสอบ เช่น “ทองจุล” “วันทนา” “ถนนหนทางทุกแห่ง”

?
คำ/อักษรที่อยู่หน้าเครื่องหมายนี้ อาจะมีปรากฏในคำที่นำมาตรวจสอบ หรือไม่ก็ได้ ถ้ามีจะมีกี่ตัวก็ได้

“ก?ข+$” หมายถึง อาจจะมีด้วยตัว ก และอักษรตัวสุดท้ายต้องมีตัว ข อย่างน้อย 1 ตัว (เครื่องหมาย + แสดงว่ามีอย่างน้อย 1 และ เครื่องหมาย $ แสดงว่าเป็นตัวสุดท้าย)




*
เหมือนกับ ?

\s
ช่องว่าง หรือ whitespace




.
ใช้แทนตัวอักษรอะไรก็ได้

· “ก.[0-9]” หมายถึง ตัว ก ตามด้วยตัวอักษรอะไรก็ได้ และต่อด้วยเลขอารบิค เลข 0-9

· “^.{3}$” หมายถึง ต้องมีตัวอักษรเพียง 3 ตัวเท่านั้น เป็นตัวเลข ตัวอักษร ภาษาไทย ภาษาอังกฤษ ได้ทั้งนั้น

[ ]
ใช้ระบุตำแหน่งในคำว่า ในตำแหน่งนี้จะมีตัวอักษรอะไรได้บ้าง เช่น

“[นร]” เป็นการกำหนดว่า คำที่นำมาตรวจสอบ ต้องเป็นตัว น หรือ ตัว ร เท่านั้นจึงจะผ่าน มีความหมายเช่นเดียวกับ “น|ร”
“[ก-ค]” เป็นการบอกว่า คำที่นำมาจะต้องเป็น ตัว ก ข ค เท่านั้น เช่น ในกรณีเลขประจำตัวที่ขึ้นต้นด้วย ก ข หรือ ค เท่านั้น ถ้าพิมพ์ตัวแรกเป็นตัวอักษรตัวอื่นก็แสดงว่าพิมพ์ผิด เราจะเขียนได้ดังนี้ ^[ก-ค]
“^[a-zA-Z]” เป็นการบอกว่า คำที่นำมาตรวจสอบต้องขึ้นต้นด้วยตัวอักษร จะเป็นตัวเล็ก คือ a ถึง z หรือ ตัวใหญ่ คือ A ถึง Z ก็ได้
“[0-9๐-๙]%” เป็นการบอกว่า ให้มีตัวเลข 1 ตัว เลขอะไรก็ได้ เลข 0 ถึง เลข 9 เป็นได้ทั้งเลขไทยและอารบิค ต่อด้วยเครื่องหมาย %
[ก-๙] ตัว ก ถึง ฮ รวมทั้งสระทุกตัว และ ตัวเลขไทย ๐ ถึง ๙
[0-9๐-๙] เลข 0-9 ทั้งเลขไทยและฝรั่ง
^[0-9๐-๙]+$ ให้มีเฉพาะตัวเลข 0-9 เลขไทยหรือเลขฝรั่งก็ได้ แต่ห้ามมีตัวอักษรใด ๆ
"^[กข]{3}[-][0-9]$" ขึ้นต้นด้วยตัว ก หรือ ข จำนวน 3 ตัว ต่อด้วยเครื่องหมาย – และจบด้วยตัวเลขอารบิค เลข 0-9 เช่น “กขก-5” “กกก-3” เป็นต้น สิ่งต่อไปนี้จะไม่ผ่านหรือเป็นเท็จ เช่น “กกกขข” เพราะ ตัวที่ 4 ไม่ใช้เครื่องหมาย – และตัวสุดท้ายไม่ใช่ตัวเลข “ขขข-๘” ตัวเลขสุดท้ายเป็นเลขไทย
ไม่ว่าตัวอักษร หรือสัญลักษณ์ใด ๆ ที่อยู่ภายในเครื่องหมาย [ ] จะกลายเป็นสัญลักษณ์ธรรมดา เช่น + กลายเป็นเครื่องหมายบวก แทนที่จะหมายถึงว่า ต้องมีตัวอักษรอย่างน้อย 1 ตัว

{ }
แสดงจำนวนครั้งที่ซ้ำกัน เช่น

“กข{2}” หมายถึงให้มีตัว ข จำนวน 2 ตัว เช่น “กขข”
“กข{2,} หมายถึงให้มีตัว ข อย่างน้อย 2 ตัว เช่น “กขขขข”
“กข{3,5} หมายถึงให้มีตัว ข จำนวน 3-5 ตัวเท่านั้น คือ “กขขข” “กขขขข” และ “กขขขขข”

( )
ใช้รวมกลุ่มเข้าด้วยกันเป็นส่วนเดียวกัน เช่น

“ก(ขค)*” หมายถึง ตัว ก และอาจจะตามด้วยตัว ขค หรือไม่มีตัว ขค ก็ได้ เครื่องหมาย * แสดงว่าจะมีหรือไม่ก็ได้
“ก(ขค){1,5}” หมายถึง ตัว ก แล้วจะตามด้วย ขค จำนวน 1-5 ชุด เช่น “กขคขคขค” หรือ “กขคขค” ก็ได้

|
เสนอทางเลือกอย่างใดอย่างหนึ่ง เช่น

“การ|ความ” เป็นการบอกว่า จะใช้คำว่า การ หรือ ความ ก็ได้
“(ก|ขค)งจ” เช่น กงจ หรือ ขคงจ ก็ได้




^[1-9][0-9]*$
ขึ้นต้นด้วยเลข 1-9 และอาจจะต่อด้วย เลข 0-9 กี่ตัวก็ได้ ในกรณีนี้ ถ้าเป็นเลข 0 ก็จะไม่ผ่าน จะผ่านตั้งแต่ 1 2 3 4 ไปเรื่อย ๆ




^(0|[1-9][0-9]*)$
อาจจะขึ้นต้นด้วยเลข 0 หรือเลข 1-9 ก็ได้ และอาจจะต่อด้วยเลข 0-9 ในกรณีนี้ เราใช้ตรวจสอบการพิมพ์ที่เป็นตัวเลขตั้งแต่ 0 ขึ้นไป ถ้ามีตัวอักษร ก็จะไม่ผ่านการตรวจสอบ หรือ เป็นเท็จ นั่นเอง

^(0|-?[1-9][0-9]*)$
เหมือน ^(0|[1-9][0-9]*)$ เพียงแต่ ถ้าไม่ขึ้นต้นด้วยเลข 0 สามารถมีเครื่องหมาย ลบ ได้ หรือจะไม่มีเครื่องหมายลบ ก็ได้ เครื่องหมาย ? แสดงว่า จะมีหรือไม่มี ก็ได้

^[0-9]+(\.[0-9]+)?$
ขึ้นต้นด้วย 0-9 อย่างน้อย 1 ตัว และอาจจะมี จุดและต่อด้วยตัวเลข 0-9 อย่างน้อย 1 ตัว อย่างนี้ เป็นการบอกว่าจะทศนิยมหรือไม่มีก็ได้ (สังเกตเครื่องหมาย ? อยู่หลังกลุ่มทั้งหมดซึ่งอยู่ในวงเล็บ เป็นการบอกว่า กลุ่มนี้ คือ (\.[0-9]+) จะมีหรือไม่มีก็ได้) แต่จะมีแค่ จุดเฉย ๆ เช่น 15. อย่างนี้ไม่ได้ ต้องเป็น 15.2 หรือ 15.38 ก็ได้ (เพราะเครื่องหมาย + อยู่หลัง [0-9] แสดงว่า ตำแหน่งนี้ คือต่อจาก จุด ยังไง ๆ ก็ต้องมีตัวเลข 0 ถึง 9 อย่างน้อย 1 ตัว จะเป็น 2 ตัว 5 ตัว 10 ตัว ก็ได้)

^[0-9]+(\.[0-9]{2})?$
เหมือนข้างบน แต่บังคับว่า ถ้ามีทศนิยม ทศนิยมต้องมี 2 ตำแหน่งเท่านั้น เครื่องหมาย {} กำหนดว่าจะต้องมีซ้ำกี่ครั้ง

^[0-9]+(\.[0-9]{1,2})?$
เหมือนข้างบน แต่อนุญาตให้มีทศนิยม 1 หรือ 2 ตำแหน่ง สังเกตการเขียนตัวเลข ในระหว่างเครื่องหมาย { และ }




^[0-9]{1,3}(,[0-9]{3})*(\.[0-9]{1,2})?$
ต้องขึ้นต้นด้วยตัวเลข 0-9 หรือ อาจจะตามด้วยเครื่องหมาย คอมม่า และตัวเลข 0-9 อีก 3 ตัว และอาจจะต่อด้วยทศนิยม 1 หรือ 2 ตำแหน่ง

^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(\.[0-9]{1,2})?$
เหมือนข้างบน แต่กำหนดให้การมีเครื่องหมาย คอมม่า อาจจะมีหรือไม่มีก็ได้ วิธีกำหนดทางเลือกใช้เครื่องหมาย | แทนที่จะใช้ ? การเลือกใช้ต้องอยู่ที่เราจะตัดสินใจว่าจะเลือกใช้อะไรจึงจะเหมาะสม นี่แหละเสน่ห์ของการเขียนโปรแกรม มีวิธีการหลายอย่างที่จะได้มาซึ่งผลลัพธ์อย่างเดียวกัน แต่อย่างไหนจะเหมาะ ต้องเลือกดู เลือกใช้ให้เหมาะสม




สรุป

คิดว่าเท่าที่ยกตัวอย่างมาก็คงจะพอเป็นสังเขป พอรู้จัก Regular expression และการใช้แล้ว สิ่งสำคัญอยู่ที่การคิดวิธีใช้ เช่นต้องการจะกำหนดเงื่อนไขอย่างไร เพื่อให้ได้เงื่อนไขที่เป็นจริง ข้อความที่ต้องการมีลักษณะอย่างไร เป็นต้น แต่ท้ายที่สุดแล้ว บางครั้งก็จำเป็นที่เราจะต้องตรวจสอบด้วยตัวเองอีกครั้ง การกำหนดเงื่อนไข ถ้าผู้ใช้เดาลักษณะเงื่อนไขได้ ก็สามารถที่จะพิมพ์หรือกำหนดข้อความให้ผ่านการกรองได้เหมือนกัน ดังนั้นดีที่สุดจึงต้องมีการตรวจสอบดูอีกครั้ง

Monday, November 3, 2008

การติดตั้ง Wireless Network แบบ Ad-hoc เพื่อแชร์ Internet ADSL โดยไม่ต้องใช้ Wireless Access Point



การติดตั้ง Wireless Network แบบ Ad-hoc เพื่อแชร์ Internet ADSL โดยไม่ต้องใช้ Wireless Access Point


 


วิธีที่ 1 คือการทำ Bridge Network ระหว่าง Local Network กับ Wireless Netwrok


ขั้นตอนแรกคือการ setup เครื่อง notebook หรือเครื่องที่มีตัวรับสัญญาณไวเลส เพื่อให้เป็นตัวกระจายสัญญาณแทน Access Point



จากนั้นทำการ Bridge Network ระหว่าง Local Network กับ Wireless Network โดยการ กด Ctrl ค้างไว้ แล้วคลิ๊กเลือก Network ทั้งสอง

จากนั้น คลิ๊กขวาแล้วเลือกที่ Bridge Connection





ในส่วนของเครื่องลูกที่จะเข้าใช้ สัญญาณ นั้น ให้คลิ๊กเลือก SSID ที่เราตั้งไว้ โดยใส่ รหัสผ่านการเข้าใช้8ตาม Network key ที่เราได้ตั้งไว้ แค่นี้ก็เรียบร้อยแล้ว


ปัญหาที่พบ



  • เครื่องแม่กระจายสัญญาณให้กับเครื่องลูกแต่เครื่องลูกไม่สามารถเข้าใช้ internet ไ้ด้ (สาเหตุไม่ทราบว่าเกิดจากอะไร)

  • ไม่แจก IP อัตโนมัติ วิธีการแก้ ให้ทำการตั้งค่า IP ให้แก่เครื่องลูกเอง


 


วิธีที่ 2 คือการ ตั้งค่า Local Network ให้ทำการแชร์ อินเตอร์เน็ต แล้วจากนั้นให้ตัวกระจายสัญญาณ


ขั้นตอนแรกก็คือการตั้งค่า Local Area Connection ให้ Share Internet ให้แก่คอมพิวเตอร์พิวเตอร์เครื่องอื่น ตามรูป



ตั้งค่า TCP/IP เครื่อง Notebook หรือเครื่องที่จะใช้เป็นตัวกระจายสัญญาณดังนี้ครับ



คำอธิบายเกี่ยวกับการตั้งค่า



  • IP Address คือ IP เครื่องของเราว่าเราต้องการให้เครื่องที่เป็นตัวกระจายสัญญาณนี้ มี IP อะไร สามารถตั้งค่าเองได้ครับ

  • Subnet Mask ตั้งค่าเป็น 255.255.255.0

  • Default Gateway ขอให้ดูว่า ตัว router modem เรา ip อะไร ส่วนมากจะเป็น 192.168.1.1

  • DNS Server เหมือนกับ Gateway


setup เครื่อง notebook หรือเครื่องที่มีตัวรับสัญญาณไวเลส เพื่อให้เป็นตัวกระจายสัญญาณแทน Access Point



การตั้งค่าสำหรับเครื่องที่จะใช้เป็นตัวกระจายสัญญาณมีแค่นี้ครับ


ในส่วนของเครื่องลูกที่จะเข้าใช้ สัญญาณ นั้น ให้คลิ๊กเลือก SSID ที่เราตั้งไว้ โดยใส่ รหัสผ่านการเข้าใช้ตาม Network key ที่เราได้ตั้งไว้ แค่นี้ก็เรียบร้อยแล้ว


ปัญหาที่อาจพบ



  • เครื่องแม่ไม่แจก IP ให้แก่เครื่องลูกวิธีการแก้ไขมีดังนี้



ให้เข้าไป เซ็ตค่า TCP/IP ของ Wireless Network ตามนี้ครับ

- IP Address ตั้งค่า อะไรก็ได้ ครับ แต่ห้ามซ้ำกับ IP เครื่องอื่นที่อยู่ในเครือข่ายเดียวกัน

- Subnet Mark ตั้งค่าเหมือนกันคือ 255.255.255.0

- Defualt Gateway ตั้งค่า Gateway โดยใส่ IP เครื่องแม่ลงไปครับ เพราะเราจะเข้า Internet โดยใช้เครื่องที่กระจายสัญญาณเป็นตัวผ่าน

- DNS ใส่เหมือน Gateway