You are on page 1of 136

PHP Guide Book

Moe Myint Shein

PHP GUIDE BOOK
First Edition
Moe Myint Shein

2

Youth Dreams

2

PHP Guide Book

Moe Myint Shein

အမွ
ာစကား
မဂၤ
လ ာပါ
ခင္
ဗ်
ာ။က ်
ေနာ္
Part (I) ပါ
ဆိ


ပီ

ေတာ႔

ပီ

ခဲ
တဲ


လက တ စ္
အု
ပ္
ထု
တ္
ခဲ
ပါ

တယ ္
။၂၀၁၀ၾ
သဂု
တ္
၁၃မွ
ာPart

(II) ထု
တ္
မယ္
လိ
ေျ


ပာခဲ
ပါ

တယ ္
။အဲ
လိ
မ်




ဆိ
ုႏွ
စ္
အု
ပ္

ဖစ္

ပီ
းရႈ
ပ္
ေနမယ္
ထ င္
ပါ
တယ ္
။တက ယ္
ေရး

ပီ

တဲ
အ ခါ

မွ
ာ First edition

လိ
႔ထု

တ္
တ ာက ပိ


ပီ
းသင္
ေတ ာ္

တယ ္
လိ
႔ယူ

ဆ မိ
ပါ
တ ယ္
။ဘ ာ
ရယ ္
မဟု
တ္
ပါ
ဘူ
းအေရွ

က တစ္
အု
ပ္
နဲ
႔အမည္
ကြ
ေအာ


င္
ပါ

Second edition လာလိ
မ္
မယ ္

လိ
ေတ ာ


႔မထင္
ပါ
ဘူ

။ဒီ
လိ
ပဲနာမည ္

ေပး
တ ာပါ
။ပထမစာအု
ပ္
မွ
ာ စာမ်
က္
ႏွ
ာ ၇၀ ၀န္

က်
င္
နဲ

ထု
တ္
ေပး
ခဲ


ပီ

ေတာ႔ဒီFirst Edition မွ
ာက ်
ေနာ
္ေနာက္
ထ ပ္စာမ်
က္
ႏွ
ာ ၇၀ နီ

ပါ
းေလ ာ
က္
ထ ပ္
ေပါ
င္

ထည ္
လိ

က္

ပါ
တ ယ္

ဒီ
စာအု
ပ္
မွ

ေတ ာ
႔တ တ္
ႏိ
င္

သ မွ
်ပထမစာအု
ပ္
မွ
ာ အေလ ာ
တၾ
ကီ
းလု
ပ္
လိ
က္

လိ
႔Chapter ေတ ြ

ေသ ခ်
ာ မစီ
ထ ား

ဖစ္
တ ာေတ ြ
ကအစ ပံ
စံ

ေတြ

ပန္

ပင္
ထ ား

ပီ
း ၾ
ကိ


စား
ေရး ထား
ပါ
တယ ္
။ စာေတ ြ
ေတာ႔ မေျ
ပာင္
း သြ


ပါ
ဘူ

။ အဆ င္
ေျ
ပေအာင္
အေရွ

အေနာ
က္

ပန္
စီ
စဥ္
ထာ

တာ
ေတ ာ
ရွ

ပါ

တ ယ္

ဒီ
စာအု
ပ္
ကိ

ေလ ႔
လ ာျ
ပီ

တဲ
အ ခါသင္

PHP မတတ ္
သြ
ား
ပါ
ဘူ

။Web Developer လ ည္

မျ
ဖစ္
ပါ
။ဒါ
ေပမယ ္

မဖတ္
ခင္
က

နဲ
႔ယ ွ
ဥ္
ရင္
ေတ ာ
႔သ င္
အ မ်
ား

ကီ
း ကြ
ာျ
ခား
သြ
ား
မွ
ာပါ
။ PHP နဲ
ပတ္

သ တ္

ပီ

အေျ
ခခံ
ေက ာင္

ေတြ
ရျ
ပီ
း ဆ က္
လ က္
ေလ ႔
လ ာဖိ


လမ္

ပြ
င္

သြ
ား
မယ ္
လိ


ယံ


က ည္
ပါ
တယ ္

ဒီ
စာအု
ပ္
နဲ
ေလ႔

လာ
ဖိ
႔Programming အေျ

ခခံ
ရွ
က အလ ြ

န္
ေကာင္

ပါ
သည္
။မရွ
ပါ

က ျ
ဖည္


ဖည ္

ခ်
င္
းဖတ္
ပါ
..။code

တိ
င္


ကိ

တ တ္
ႏိ
င္

သ မွ

run ပါလိ
အၾ


ကံ

ပဳ
ပါ
ရေစ။၀န္
ခံ
ခ်
င္
တာ
ေတ ြ
က ေတ ာ

code ေတ ြ
ကိ

w3schools.com ကေနreference

လု
ပ္

ပီ

သံ


ထာ

ပါ
တ ယ္
။ အမ်
ား
စု
က ဘာသ ာ

ပန္
တ ာျ
ဖစ္
ပါ
တ ယ္
။ နား
လည ္
မယ္
လိ
ေတာ႔ေမွ



ာ္
လ င္

မိ
ပါ
တယ ္
။ တ စ္
စံ
တ စ္

ရာ

အဆင္
မေျ
ပတ ာ ရွ
ခဲ

ေသာ္က ်

ေနာ္
ညံ
လိ

သ ာျ


ဖစ္
ေၾ
က ာင္

။ ေရး
ေနစဥ္
မွ
ာ အား
ေပး
ခဲ
သူ

မ်


အား
လု


ကိ
ုေက ်

ဇူ

တင္
ပါ
တယ္

အာ

လံ


ေသာ ေဒါ
င္

လု
ပ္
ဆြ


က သူ ဖတ ္
ရႈ
အာ

ေပး ေလ ႔
လာ

ကသ ူ ညီ
အ စ္
ကိ
ု ေမာ
င္
ႏွ
မ မ်

း အား
လံ


ကိ
လ ည္


ေက ်

ဇူ

တင္
ပါ
တ ယ္
။ စကား
မစပ္က ်
ေနာ
္စာ
ေရး
ဆရာမဟု
တ္
ပါ
။ ကူ
ညီ
ခ်
င္
တဲ
႔စိ
တ္
သ က္
သ က္နဲ
ေရး

တာ ျ
ဖစ္
ပါ
တယ ္

ေနာက ္
လ ည္

စာေတြ
အ မ်



ကီ

ေရး
ဖိ

အစီ
စဥ္
မရွ
ပါ

ခင္
ဗ်
ာ။

တ တ္
ႏိ
င္

သ ေလာက္
ေတ ာ႔

အာ

လံ


ကိ
ေက ်


ဇူ

တ င္
ပါ
တ ယ္
။ အၾ
ကံ

ပဳ
ခ်
က္
မ်


ကိ
ု အီ

ေမး moemyintsheinster@gmail.com

ကူ
ညီ
သြ
ား
မွ
ာပါ

သိ
ေပး


ပိ
ႏိ


င္

ပါ
တ ယ္

ဘာေတြအသ စ္
ရွ

ေနမလ ဲ
ဆိ
တ ာကိ

လ ည္

း က်
ေနာ္
႔ဘေလ ာ႔ www.moemyintshein.com မွ

လာ
ေရာက္လ ည္
ပတ ္
ႏိ
င္

ေၾ
ကာင္

ပါ

ေလ႔
လ ာၾ
ကသ ူ
အ ား
လံ


ကိ

ေလး
စား
လ်
က္
မိ



မင္
ရွ

န္

3

Youth Dreams

3

PHP Guide Book Moe Myint Shein Contents at a Glance 4 Chapter 1 Introducing PHP 5 Chpater 2 The Building Blocks of PHP 7 Chapter 3 Flow Control Functoins in PHP 14 Chapter 4 Working With Functions and Forms 25 Chapter 5 PHP Date. File Handling & Some PHP Advaced 32 Chapter 6 PHP and AJAX 54 Chapter 7 PHP MyAdmin Basic 74 Chapter 8 PHP and Database 83 Chapter 9 XML and PHP 97 Chatper 10 Exception Handling and Filter in PHP 124 Conclusion 136 Youth Dreams 4 . Include.

3 rc3 (July 15.။ PHP အလု ပ္ လု ပ္ ပံ ု PHP သည ္ server-side language ျ ဖစ္ ပါ တ ယ္ ။ဆိ လိ ု တ ာက က ၽ ု န္ ႊ ေတ ာ တိ ္ ေရး ႔ ု လိ က္ ု တဲ ႔ code ေတ ြ ဟ ာserver ေပၚ မွ ာrun တာျ ဖစ္ ပါ တ ယ္ ။server-side language ေတ ြ က web page ေတြ ဆီ က ေနပိ ေပး ႔ ု လိ က္ ု တဲ ႔ အခ် က္ အ လ က္ ေတ ြ ကိ ု ရယ ူ ပါ တ ယ္ ။ host ရဲ ႕server ဆီ ကိ ု ေရာ က္ လာ မယ ္ ။ေရာ က္ လာ တဲ ႔ information ေပၚ မွ ာ မူ တ ည္ ျ ပီ း ေတ ာ ႔ server ေပၚ မွ ာrun ပါ တ ယ္ ။ျ ပီ း မွ browser ဆီ ကိ ုလ ိ အ ပ္ ု တဲ အ ခ် ႔ က္ အ လ က္ ကိ ျ ု ပန္ ပိ ေပး ႔ ု ပါ တယ ္ ။ ဥပမာ ကၽ န္ ႊ ေတ ာ္ တိ က ႔ ု web page ေပၚ မွ ာ click တစ္ ခ် က္ ႏွ ပ္ ိ လိ က္ ု ရင္ကၽ န္ ႊ ေတ ာ္ တိ ႔အဲ ု ဒီclick ႏွ ပ္ ိ လိ က္ ု ျ ခင္ း ေၾ ကာ င္ ့ရလ ာ တဲ ႔result က ိ မျ ု မင္ ရခင္ မွ ာ server ဆီ ကိ ု ကၽ န္ ႊ ေတ ာ တိ ္ ရဲ ႔ ု ႕ Input ေပး လိ က္ ု တဲ ႔ အခ် က္ အ လက ္ ေတြ ကိ ု ပိ တာ ႔ ု ရယ္ server က ေန ျ ပန္ ပိ တ ာေတ ြ ႔ ု လု ပ္ ေနတာျ ဖစ္ ပါ တယ္ ။ ဒါ က server-side ရဲ ႕ သ ေဘာပါ ။ client-side language က ေတာ႔ကၽ ႊ န္ ေတ ာ္ တိ ႔user ေတ ြ ု အသ ံ း ု ျ ပဳ တဲ ႔client ေပၚ မွ ာပဲတ ိ က္ ု ရိ က ္run တ ာ ု ပါ ။ JavaScript ရဲ ႕client က ေတ ာ႔web browser ေပါ ။ ဒါ ႔ ေၾ ကာင္ ့သူ အ ေနနဲ ႔ ႔web server ဆီ ကိ ုinformation ပိ တာ ႔ ု 5 Youth Dreams 5 .။ ေနာက ္ ပိ ု င္ း မွ ာေတာ႔အခု သိ ၾ က တဲ အတ ိ ႔ င္ ု း PHP: Hypertext Preprocessor ျ ဖစ္ ပါ တ ယ္ ။ PHP ဟာယေန႔ အ ခါ မွ ာေတာ႔ အသံ း ု အမ် ား ဆံ းprogramming language တစ္ ု ခု အျ ဖစ္ ရပ္ တည ္ ေနပါ ျ ပီ ။အခု အ ခါ မွ ာPHP က ိ ု THE PHP GROUP က ေန maintain လ ု ပ္ ေပး ေနပါ တ ယ္ ။ဒါ အျ ႔ ပင္PHP ဟာ PHP License ရဲ ႕ ေအာ က္ မွ ာ ထြ က္ ေပၚ တဲ ႔free software ျ ဖစ္ ပါ တ ယ္ ။ PHP ဟ ာ general-purpose scripting language တစ္ ခု ျ ဖစ္ ေပမယ ္ ႔အထူ း သျ ဖင္ ေတ ာ႔web ့ development အတ ြ က္ အ ဓိ ကတ ြ င္ တြ င္ က် ယ္ က် ယ္ အသ ံ း ု ျ ပဳ ၾ က ပါ တ ယ္ ။ သူ ကိ ႔ ု HTML coding ေတ ြ အ ထဲ မွ ာ ထည့ သြ ္ င္ း အသံ း ု ျ ပဳ ႏိ င္ ု ျ ပီ း web server ေပၚ မွ ာ run တာျ ဖစ္ ပါ တ ယ္ ။ web servers အမ် ား စု မွ ာ အသံ း ု ျ ပဳ ႏိ င္ ု ျ ပီ း ေတ ာ႔ Operating System ေတ ြ နဲ ႔ Platform အခု အ ခ် န္ ိ မွ ာ PHP က ိ ု websites ေတ ြ အ ား လံ း ု နီ း ပါ း မွ ာ အခေၾ ကး ေငြ ေပး စရာမလိ ပဲ ရယူ အသ ံ ု း ု ျ ပဳ ႏိ င္ ု ပါ တ ယ္ ။ ေပါ င္ း သ န္ း ၂၅ ေက် ာ ္ နဲ ႔ web server ၁ သန္ း ေက် ာ ေပၚ ္ မွ ာ install လု ပ္ က ာအသ ံ း ု ျ ပဳ ေနၾ ကျ ပီ း ဒီ အ ေရအတ ြ က္ ဟ ာ ေန႔ စဥ္ နဲ အမွ ႔ ် တိ း ု လိ လ ာေနပါ ႔ ု တယ ္ ။ သူ ရဲ ႔ ႕ syntax တိ နဲ ု ဆ င္ ႔ တူ ပါ တ ယ္ ။ operating system အေတ ာ မ် ္ ာ း မ် ား ေပၚ မွ ာ Apache (web server) ဟ ာ Perl နဲ ႔C နဲ ႔ အတူ တူတြ ျ ဲ ပီ း အသံ း ု ျ ပဳ ၾ ကပါ တ ယ္ ။Windows ေပၚ မွ ာလည ္ းMicrosoft ရဲ ႕IIS နဲ လည ္ ႔ း ယွ ဥ္ တြ အသ ံ ဲ း ု ျ ပဳ ႏိ င္ ု ပါ တယ ္ ။official current release ကေတာ႔ PHP 5. ROR နဲ ႔ ASP.net တ ိ ကိ ႔ ု လ ည္ ု းေလ႔ လာ ေနတ ာ ပဲ ျ ဖစ္ ပါ တ ယ္ ။ တစ္ ခု စီ တိ င္ ု း မွ ာေတာ႔ အား သာ ခ် က္ အား နည္ း ခ် က္ ကိ ယ္ ု စီ ရွ ၾ ိ ကတ ာ မ် ဳ ိ း ျ ဖစ္ ပါ တ ယ္ ။ ဘယ ္ အ ရာ က မွ ရာႏႈ န္ း ျ ပည္ ေက ာ ့ င္ း း မြ န္ တ ယ္ လိ မဆိ ႔ ု ု ႏိ င္ ု ပါ ဘူ း .3.2 (March 4.3. 2010) ျ ဖစ္ ပါ တ ယ္ ။ PHP 4 က ေန PHP 5 က ိ ေျ ု ပာင္ း လာ တဲ အ ခါ ႔ မွ ာ object-oriented programming language ျ ဖစ္ လ ာခဲ ပါ ႔ တ ယ္ ။ အခု အ ခါ မွ ာေတ ာ႔ ကမာၻ ေပၚ မွ ာရွ တဲ ိ ႔ ဘာ သာ စက ာ း အား လံ း ု နီ း ပါ း ရဲ ႕ အက ၡ ရာ ေတြ ကိ ု ကိ င္ ု တြ ယ္ ႏိ င္ ု ျ ပီ လိ ဆိ ႔ ု ႏိ ု င္ ု ပါ တ ယ္ ။ PHP ဟာ သ ူ ရဲ ႔ ႕ ယွ ဥ္ ျ ပိ ဳ င္ ဘ က ္language ေတြ ထ က္ပိ ေက ာင္ ု း တ ယ္ပိ ျ ု မန္ တယ ္ သင္ ယူ ဖိ ႔ ု ပိ မိ ု ု လြ ယ္ ကူ တ ယ ္လ ိ ႔အၾ ု က မ္ း အား ျ ဖင္ ့ေျ ပာႏိ င္ ု ပါ တ ယ္ ။ database အေတ ာ မ် ္ ား မ် ား နဲ ယွ ႔ ဥ္ တြ အသ ံ ဲ း ု ျ ပဳ ႏိ င္ ု ျ ခင္ း ေပါ ပါ ႔ း ျ ခင္ း အက န္ ႔အသ န္ ႔မရွ ဘူ ိ း လိ ႔ေျ ု ပာ ႏိ င္ ု ေလာက ္ ေအာ င္ခ် ႕ ဲ ထြ င္ အသ ံ း ု ခ် ႏိ င္ ု ျ ခင္ း open source ျ ဖစ္ ေသ ာ ေၾ ကာင္ ့ ကု န္ က် စရိ တ္ မရွ ျ ိ ခင္ းစတ ဲ ေကာင္ ႔ း က် ဳ ိ းမ် ား စြ ာ ရွ ေန ပါ ိ တယ ္ ။က ၽ န္ ႊ ေတ ာ ္PHP စာအု ပ္ ကိ အ ခု ု ေရး ေပမယ ္ ႔JSP.PHP Guide Book Moe Myint Shein Chapter 1 Introducing PHP What is PHP? PHP ဆိ တ ာdynamic web pages ေတ ြ ု အ တြ က္ ရည္ ရႊ ယ္ ျ ပီ း ေပၚ ေပါ က္ လ ာခဲ တဲ ႔ ႔scripting language ျ ဖစ္ ပါ တယ ္ ။ PHP က ိ ု web scripts ေတ ြ ေရး ဖိ ဖန္ ႔ ု တီ း ခဲ တာ ႔ သ ာျ ဖစ္ ပါ တ ယ္ ။ stand alone application ေတ ြ ေရး ဖိ မဟ ု ႔ ု တ္ ပါ ဘူ း (ဒါ ေပမယ ္ ႔ အခု အ ခ် န္ ိ မွ ာေတာ႔ application ေတ ြ ကိ လ ည္ ု းPHP နဲ ေရး ႔ လိ ရေနပါ ႔ ု ျ ပီ ။ ) PHP က ိ ု မူ လ ပထ မဆံ းဖန္ ု တီ း ခဲ သူ ႔ က ေတ ာ႔ Rasmus Lerdorf ပဲ ျ ဖစ္ ပါ တယ ္ ။ စစေပၚ ခ် င္ း 1994 မွ ာ PHP ရဲ ႕ အရွ ည္ က Personal Home Page လိ ႔Rasmus Lerdorf ု ကေခၚ တြ င္ ခဲ ပါ ႔ တ ယ္ . 2010) ျ ဖစ္ ပါ တ ယ္ ။အခု ဒီ စာ ေရး ေနစဥ္ latest preview release က ေတ ာ႔ 5..

mysql.PHP Guide Book Moe Myint Shein ျ ပန္ ထု တ္ တ ာေတြလ ု ပ္ ဖု မလ ိ ႔ ိ ပါ ု ဘူ း ။သ ေဘ ာတရား က ေတာ႔browser က code က ိ ဖတ္ ု တ ယ္ျ ပီ း ရင္ interprets လု ပ္ တ ယ္ ။ ျ ပီ း ရင္ ျ ပန္ ထု တ္ ျ ပတ ယ္ ။ျ မန္ ျ မန္ ဆ န္ ဆ န္ ျ ပီ း ပါ တယ္ ။သ ူ ေနရာ ႔ နဲ ႔ သူ ေတာ႔ client-side ေရာserver-side ေရာလိ အ ပ္ ု ပါ တ ယ္ ။ ဥပမာform တစ္ ခု ဆိ ပါ ု စိ ဗ် ႔ ု ာ ။ကၽ န္ ႊ ေတာ္ တိ ႔ ု sign up လ ု ပ္ တဲ အ ခါ ႔ ျ ဖစ္ ျ ဖစ္ ေပါ ႔ ကၽ န္ ႊ ေတ ာ တိ ္ ႔ ု text box ထဲ မွ ာထ ည္ လိ ့ က္ ု တဲ ႔ data ေတ ြ ကိ ု မွ န္ မမွ န္ ကိ ု client side language တစ္ ခု နဲ စစ္ ႔ မယ္ ။ valid ျ ဖစ္ မျ ဖစ္ ကိ ု ေပါ ။ျ ႔ ပီ း မွ submit ကိ ျ ု ဖစ္ ျ ဖစ္ ႏွ ပ္ ိ လိ က္ ု မွ server ဆီ ကိ ပိ ု မွ ႔ ု ာ ေပါ ။ ႔ server ဆီ ကိ မွ ု န္ ကန္ တဲ ႔information ေတြ ပဲ ေရာက္ ရွ ေစတာေပါ ိ ဗ် ႔ ာ ။ web server ေပၚ မွ ာ အခ် က္ အ လ က္ ေတ ြ ကိ ု save လု ပ္ ျ ပီ းသ ိ မ္ း ထ ား ဖိ လိ ႔ ု အ ပ္ ု တ ာမ် ဳ ိ းၾ က ေတာ႔ server side နဲ ပဲ ႔ လု ပ္ လိ ရတာေပါ ႔ ု ။ ႔ Fig 1. IE) တ စ္ ခု လိ ပါ ု မယ ္ ။text editor တ စ္ ခု လု ပါ ိ မယ ္ ။ PHP editor တ စ္ ခု ဆိ ပိ ု ေကာင္ ု း ပါ တယ ္ ။ ကၽ န္ ႊ ေတာ္ က ေတ ာ႔Dream weaver CS 4 က ိ ု အသံ း ု ျ ပဳ ပါ တ ယ္ ။ဒါ ေပမယ္ လ ည္ ႔ းNotepad က ိ ပဲ ု အသ ံ း ု ျ ပဳ မယ ္ ဆိ ရင္ ု လ ည္ းအဆင္ ေျ ပႏိ င္ ု ပါ ေသ း တယ ္ ။ 6 Youth Dreams 6 .html က ိ သြ ု ား ျ ပီ း ေတာ႔ ကိ ယ္ ု ရဲ ႔ ႕windows version နဲ ႔ ကိ က္ ု ညီ တဲ ႔ xampp installer က ိ ေဒါ ု င္ း လု ပ္ ဆြ ပါ ဲ ။ အဆင္ ဆ င္ ့ သြ ့ င္ း သြ ား လိ က္ ု ရင္ရသြ ား မွ ာပါ ။ သာမန္software သ ြ င္ း သ လိ ပါ ု ပဲ ခင္ ဗ် ာ ။ သြ င္ း ျ ပီ း သြ ား ရင္ ေတ ာ႔C ေအာက္ က xampp ေအာက္ က htdocs ေအာက္ မွ ာ php ဆိ တဲ ု ႔folder ေလး ေဆာက ္ သ င္ ပါ ့ တယ ္ ။ အဲ ဒီေအာက္ မွ ာပဲ က် ေနာ တိ ္ ႔ ု ေရး သ မွ ် ကိ ုsave သ င္ ့ ပါ တယ ္ ။PHP စာ အု ပ္ တ စ္ အု ပ္ ျ ဖစ္ တဲ ႔ အတ ြ က ္လ ု ပ္ တတ ္ သ င္ တ ယ္ ့ လိ လည ္ ႔ ု းယ ူ ဆတ ဲ အ တြ ႔ က ္PHP. Apache နဲ ႔MySQL တိ ကိ ႔ ု ုသ ီ း ျ ခာ း စီInstall လု ပ္ တဲ ပံ ႔ စံ ု ကိ ုPart (II) စာအု ပ္ မွ ာ ေရး ေပး ပါ မယ ္ ။ အခု က် ေနာ္ တိ ႔ ု အလု ပ္ ျ ဖစ္ ဖိ အ တြ ႔ ု က္ နဲ ႔ လြ ယ္ လြ ယ္ ကူ ကူ ျ မန္ ျ မန္ ဆ န္ ဆ န္ ေလ႔ လ ာႏိ င္ ု ဖိ ႔ ု XAMPP နဲ ပဲ ႔ သြ ား ဖိ ႔ ု က် ေနာ္ ေရြ း လိ က္ ု တ ာပါ ။ ေနာက ္ ထ ပ္ဒီ စာ အု ပ္ မွ ာပါ တဲ ႔သင္ ခန္ း စာ မ် ား ကိ ေလ ႔ ု လ ာႏိ င္ ု ဖိ အ တြ ႔ ု က ္Web Browser (firefox.1 PHP က ိ အ သံ ု း ု ျ ပဳ ထ ား ေသ ာserver ထ ံ မွ user က web page က ိ ု request လ ု ပ္ ပံ ု PHP ကိ ေလ ႔ ု လ ာေတာမယ ္ ဆိ ရင္ ု Apache web server နဲ ႔ My SQL Database တိ ပါ ႔ ု တြ ျ ဲ ပီ း ပါ ေနတာျ ဖစ္ ပါ တယ ္ ။ အခု ကၽ န္ ႊ ေတ ာ တိ ္ ႔ ု PHP က ိ စတင္ ု ေလ ႔ လ ာဖိ အ တြ ႔ ု က္ လိ အ ပ္ ု တဲ ႔ software ကိ သြ ု င္ း ရပါ မယ္ ။ localhost မွ ာသံ း ု ဖိ အ တြ ႔ ု က္ လိ အ ပ္ ု တဲ ႔ software ေတြ အ ား လံ း ု ကိ ု ေပါ င္ း စု ျ ပီ း ထည ္ ထ ား ့ တဲ ႔ package software ေတြ ရွ ပါ ိ တယ္ ။ အဲ ဒီ software ေတ ြ ကိ သံ ု း ု ျ ပီ းweb server နဲ ႔ database က ိ ကု ု ယ္ ိ စက္ ႔ ထဲ မွ ာပဲ ရရွ မွ ိ ာျ ဖစ္ ပါ တ ယ္ ။ အဲ ဒီ software ေတ ြ ထဲ မွ ာwindows အတ ြ က္ ထ င္ ရွ ား တာေတြ က ေတာ႔ WAMP နဲ ႔ XAMPP တ ိ ပဲ ႔ ု ျ ဖစ္ ၾ က ပါ တ ယ္ ။ သူ ထဲ ႔ မွ ာapache.apachefriends.org/en/xampp. php စတ ဲ ႔ လိ အ ပ္ ု တ ာေတ ြ အာ း လံ း ု ပါ ၀င္ တာ ျ ဖစ္ ပါ တ ယ္ ။ ကၽ န္ ႊ ေတ ာ တိ ္ ႔ ု အခု XAMPP ကိ ပဲ ု ေရြ း ျ ပီ း ေတာ႔ ေလ႔ လာ ၾ ကပါ မယ္ ။ ၁။http://www.

save လ ု ပ္ ရမယ ္ ေနရာ ႔ က ေတာ႔ C ေအာက္ က xampp ေအာ က္ က htdocs ေအာက္ က php ရဲ ႕ ေအာက္ မွ ာျ ဖစ္ ပါ တ ယ္ ။ အဆင္ ေျ ပသ လိ နာမည္ ု ေပး ႏိ င္ ု ပါ တယ ္ ။ကၽ ႊ န္ ေတ ာ္ က ေတ ာ ႔1.php.php အစရွ သျ ိ ဖင္ ့ ပဲ ေပး ထာ း ပါ တ ယ္ ။အဲ ဒါ ကိ ု browser မွ ာၾ က ည္ မယ ္ ့ ဆိ ရင္http://localhost/php/1.php.php အစရွ ု သျ ိ ဖင္ ေခၚ ့ ျ ပီ းၾ က ည္ လိ ့ ႔ ု ရပါ ျ ပီ ။PHP code ေတ ြ ရဲ ႕ အဆ ံ း ု သတ ္ တိ င္ ု း မွ ာ semicolon နဲ အဆ ံ ႔ း ု သ တ္ ရပါ မယ္ ။ semicolon က စာေၾ က ာင္ း တ စ္ ေၾ ကာင္ း နဲ ႔ ေနာက ္ တ စ္ ေၾ က ာင္ း ကိ ုျ ခား နာ း ေပး တဲ ႔separator သ ေဘ ာပါ ပဲ ။ PHP က ိ သံ ု း ု ျ ပီ း ေတာ႔text စာ သ ား ေတ ြ ကိ ု output ထု တ္ တဲ အ ခါအသ ံ ႔ း ု ျ ပဳ ႏိ င္ ု တဲ အ ေျ ႔ ခခံstatements ႏွ စ္ မ် ဳ ိ း ရွ ပါ ိ တယ္ ။ echo နဲ ႔print ပါ ။ အထက ္ ပါ ဥပမာမွ ာေတာ႔echo ကိ သံ ု း ု ျ ပီ းHello World ဆ ိ တဲ ု ႔စာ သ ား ကိ ု output ထု တ္ ထ ား ပါ တယ ္ ။မွ တ္ သာ း ရမွ ာ က တ က ယ္ လိ ဖိ ႔ ု ု င္ ကိ ုsave လ ု ပ္ တဲ အ ခါ ႔ .PHP Guide Book Moe Myint Shein Chapter 2. ?> </body> </html> ဒီcode ေလ း ေတ ြ ကိ ုrun မယ ္ ဆိ ရင္Dreamweaver က ိ ု ဖြ ု င္ ့PHP က ိ ေရြ ု း ျ ပီ း ေတာ႔အလိ အ ေလ ွ ု ် ာက္ နဂိ ရွ ု ေနတဲ ိ ႔code ေတ ြ ကိ ု ျ ဖတ္ ႏိ င္ ု ပါ တယ္ ။Notepad ကိ ပဲ ု သံ း ု ရင္ လ ည္ း ရပါ တ ယ္ ။အဲ ဒီ ေနာက ္ code ေတြ ကိ ု copy paste လု ပ္ ပါ ။ျ ပီ း ရင္ save လု ပ္ ပါ . 2.php နဲ ႔ မသိ မ္ း ပဲ နဲ ႔ .html နဲ သိ ႔ မ္ း မယ္ ဆိ ရင္ ု အထဲ က PHP code ေတ ြ ဟ ာအလ ု ပ္ လု ပ္ မွ ာမဟု တ္ ပါ ဘူ း ။ Comments in PHP PHP မွ ာ single line comment အတြ က ္// က ိ အသ ံ ု း ု ျ ပဳ ပါ တ ယ္ ။ စာေၾ ကာင္ း ေရမ် ား တ ယ္ ဆိ ရင္ ု ေတာ႔/* နဲ စျ ႔ ပီ း */ နဲ ဆံ ႔ း ု ပါ တယ ္ ။ 7 Youth Dreams 7 .. http://localhost/php/2.The Building Blocks of PHP Basic PHP Syntax PHP က ိ ေရး ု တဲ အ ခါ<?php နဲ ႔ စျ ႔ ပီ း?> နဲ အ ဆံ ႔ း ု သတ ္ ေလ႔ ရွ ပါ ိ တယ ္ ။PHP block တစ္ ခု ကိ ုdocument ရဲ ႕ ဘယ ္ ေနရာမဆ ိ ု ထည္ လိ ့ ရပါ ႔ ု တ ယ္ ။ အတ ိ ေကာက္ ု အ ေနနဲ ႔ <? နဲ စျ ႔ ပီ း ?> နဲ ဆံ ႔ း ု ရင္ ေတာ႔ ရပါ တ ယ္ ။ ဒါ ေပမယ ္ ႔ အရွ ည္ ေရး တာ ကိ ပဲ ု အာ း ေပး ပါ တယ ္ ။ <?php ?> PHP file တ စ္ ခု မွ ာပံ ု မွ န္ အ ား ျ ဖင္ ့HTML ဖိ င္ ု တ စ္ ခု လိ ပဲHTML tag ေတြ ု ပါ ၀င္ ပါ တယ ္ ။PHP code ေတြ လ ည္ း ပါ ၀င္ ပါ တ ယ္ ။ ေအာက ္ က PHP script ကိ ၾ ု ကည ္ မယ္ ့ ဆိ ရင္ ု ဒါ ဟ ာbrowser ကိ ု “Hello World” ဆိ တဲ ု ႔ စာသ ာ း ေလး ကိ ု ထု တ္ ျ ပေပး တဲ ႔ code ေလ း ပဲ ျ ဖစ္ ပါ တ ယ္ ။ <html> <body> <?php echo "Hello World".

တက ယ္ လိ ႔$ သေက ၤ ု တ နဲ မစဘ ူ ႔ း ဆိ ရင္အလု ု ပ္ လု ပ္ မွ ာမဟ ု တ္ ပါ ဘူ း ။ အခုstring variable တစ္ ခု နဲ ႔number variable တစ္ ခု ကိ ု ေရး ၾ က ည္ ပါ ့ မယ ္ ။ <?php $txt = "Hello World!". နဲ ု ႔_ ) တိ ပဲ ႔ ု ပါ ၀င္ ရပါ မယ ္ ။ 8 Youth Dreams 8 .PHP Guide Book Moe Myint Shein <html> <body> <?php //This is a comment /* This is a comment block */ ?> </body> </html> PHP Variables variable ေတြ ကိ ု number ေတ ြ ၊ strings ေတြ arrays ေတ ြ function result ေတြ စတ ဲ ႔ တန္ ဖိ း ု ေတြ ကိ ု သိ မ္ း ဖိ အတ ြ ႔ ု က္ အသ ံ း ု ျ ပဳ ပါ တယ ္ ။ဒီ လိ ုvariable တ စ္ ခု ကိ ေၾ ု ကျ ငာထား ခဲ မယ္ ႔ ဆိ ရင္ ု သူ ကိ ႔ ု ကၽ န္ ႊ ေတ ာ တိ ္ ရဲ ႔ ု ႕php script ထဲ မွ ာ ထပ္ ခါ ထ ပ္ ခါ ျ ပန္ ေခၚ သံ း ု ႏိ င္ ု တ ာျ ဖစ္ ပါ တ ယ္ ။ PHP ရဲ ႕variable ေတ ြ အ ကု န္ လံ း ု ကိ ု $ သ ေကၤ တ နဲ ႔ စရပါ တ ယ္ ။ $var_name = value. $number = 10. A-Z. 0-9. ?> PHP မွ ာvariable တစ္ ခု ကိ ု ဘာdata type ျ ဖစ္ တ ယ္ ဆိ တ ာၾ ု ကိ ဳ တင္ ေၾ ကျ ငာစရာမလ ိ ပါ ု ဘူ း ။အထက ္ က ဥပမာေလး မွ ာဒီ variable ဟ ာ ဘ ာ data type ျ ဖစ္ တယ ္ ဆိ တ ာမ် ု ဳ ိ း က် ေနာ္ တိ ႔ မေၾ ု ကျ ငာ ခဲ ပါ ႔ ဘူ း ။ သူ ကိ ႔ က် ု ေနာ တိ ္ ႔ ေပး ု ထာ း ခဲ တဲ ႔ ႔ တန္ ဖိ း ု ေပၚ မွ ာမူ တ ည္ ျ ပီ းမွ န္ က န္ တဲ ႔ data type က ိ ု PHP က အလ ိ အ ေလ် ု ာက ္ ေျ ပာ င္ း ေပး မွ ာျ ဖစ္ ပါ တယ္ ။Java လိ မ် ု ိ ဳ းStrong type language မွ ာဆ ိ ရင္ ု ေတ ာ႔အသ ံ း ု မျ ပဳ ခင္ မွ ာ သူ ရဲ ႔ ႕ data type က ိ ၾ ု ကိ ဳ တ င္ ေၾ ကျ ငာ ေပး ရတာျ ဖစ္ ပါ တ ယ္ ။ variable ကိ အ မည္ ု ေပး တဲ အ ခါသူ ႔ ရဲ ႔ ႕ဥပေဒေတ ြ ရွ ပါ ိ တ ယ္ ။ - variable name တ စ္ ခု ကိ ု letter တစ္ ခု ခု ဒါ မွ မဟု တ္ underscore “_” နဲ စတင္ ႔ ရပါ မယ ္ ။ variable name တစ္ ခု မွ ာ alpha-numeric characters နဲ ႔underscores (ဆိ လိ ု တ ာက a-z.

) ကိ ု string value ႏွ စ္ ခု ကိ ု အတူ တ ကြ ျ ဖစ္ သြ ာ း ေအာင္ လု ပ္ ဖိ အ တြ ႔ ု က္ အသ ံ း ု ျ ပဳ ပါ တယ္ ။dot (. echo $txt. " " .) ကိ ု ႏွ စ္ ၾ ကိ မ္ အ သံ း ု ျ ပဳ ထား တာကိ ေတ ြ ု မွ ႔ ာ ျ ဖစ္ ပါ တယ ္ ။ တ တိ ယ string ျ ဖစ္ တဲ ႔ “ ”(empty space) ကိ ထ ည္ ု ခ် ့ င္ လိ ပဲ ႔ ု ျ ဖစ္ ပါ တ ယ္ ။ Using the strlen() function strlen() function ကိ ုstring ရဲ ႕ အရွ ည ္length ကိ သိ ု ရွ လိ ိ ု တဲ အ ခါ ႔ မွ ာ အသံ း ု ျ ပဳ ပါ တယ ္ ။“Hello World!” ဆိ တဲ ု ႔string ရဲ ႕ length က ိ ရွ ု ာ မယ ္ ဆိ ု ရင္ 9 Youth Dreams 9 . ?> သူ ရဲ ႔ ႕output ကေတ ာ ႔ Hello World ျ ဖစ္ ပါ တယ ္ ။အခု string ေတြ ကိ ု function နဲ ႔ operators တ စ္ ခ် ဳ ိ ႕ ကိ သံ ု း ု ျ ပီ းmanipulate လု ပ္ တဲ ႔ ပံ ု စံ ကိ ၾ ု က ည္ ပါ ့ မယ ္ ။ The Concatenation Operator PHP မွ ာstring နဲ ပတ ္ ႔ သတ ္ တဲ ႔ operator တ စ္ ခု ပဲ ရွ ိ ပါ တယ ္ ။concatenation operator ဆိ တဲ ု ႔(. echo $txt1 .) operator က ိ အ သံ ု း ု ျ ပဳ ျ ပီ းstring ႏွ စ္ ခု ကိ ု ေပါ င္ း တဲ ပံ ႔ စံ ု ကိ ု ေအာက ္ မွ ာၾ က ည္ ပါ ့ ။ <?php $txt1="Hello World".PHP Guide Book Moe Myint Shein - variable name တ စ္ ခု မွ ာspace ေတ ြ မပါ ၀င္ ရပါ ဘူ း ။variable name စာလံ း( word ) တစ္ ု ခု ထ က္ ပိ တ ယ္ ု ဆိ ရင္ ု underscore (_) နဲ ႔ ($my_string) ဒါ မွ မဟ ု တ္ capital letter နဲ ႔ ($myString) ျ ခား နား ထ ား သ င္ ပါ ့ တ ယ္ ။ Strings in PHP String variable တ စ္ ခု ကိ ုtext (character stings)ေတြ ကိ ု သိ မ္ း ဆ ည္ းဖိ ႔အလု ု ပ္ လု ပ္ ဖိ ႔ ု အတြ က ္အသံ း ု ျ ပဳ ပါ တယ္ ။string ေတ ြ နဲ ႔ ပတ္ သ တ္ ျ ပီ း အသ ံ း ု မ် ာ း တဲ ႔ function ေတြ နဲ ႔ operators ေတြ ကိ နဲ ု နဲ ေလ႔ လာ ၾ ကည ္ ပါ ့ မယ ္ ။ String တစ္ ခု ကိ ု ဖန္ တီ း ျ ပီ း တဲ အ ခါသူ ႔ ကိ ႔ ု တြ က္ ခ် က္ ႏိ င္ ု ပါ တ ယ္ ။string တစ္ ခု ကိ ု function တ စ္ ခု ထဲ မွ ာတ ိ က္ ု ရိ က္ ု အ သံ း ု ျ ပဳ ႏိ င္ ု သလ ိ ု variable တစ္ ခု အျ ဖစ္ နဲ လ ည္ ႔ းသိ မ္ း ဆည ္ း ႏိ င္ ု ပါ တ ယ္ ။ ေအာက ္ က ဥပမာမွ ာ Hello World ဆိ တဲ ု ႔ String ကိ ု $txt ဆိ တဲ ု ႔ string variable ထဲ ကိ တ န္ ု ဖိ း assign ု လု ပ္ ထ ား တာျ ဖစ္ ပါ တယ္ ။ <?php $txt = "Hello World". $txt2="12345". $txt2. ?> သူ ရဲ ႔ ႕output က ေတာ႔ Hello World 12345 ပဲ ျ ဖစ္ ပါ တယ ္ ။က ် ေနာ တိ ္ ရဲ ႔ ု ႕code က ိ ၾ ု က ည္ မယ ္ ့ ဆိ ရင္ ု concatenation operator (.

?> သူ ရဲ ႔ ႕output ကေတ ာ ႔6 ပဲ ျ ဖစ္ ပါ တ ယ္ ။ World ရဲ ႕ ေနရာ တ နည ္ း အား ျ ဖင္ ့W ရဲ ႕ ေနရာက 6 ျ ဖစ္ ေနပါ တ ယ္ ။ ဘာလိ ႔7 ု မျ ဖစ္ ရတာလဲ ဆိ ေတာ႔ ု string တ စ္ ခု ရဲ ႕ပထမ position ဟ ာ1 မဟု တ္ ပါ ဘူ း0 ျ ဖစ္ လိ ပါ ႔ ု ပဲ ။PHP မွ ာstring အတြ က္ function ေပါ င္ း ေျ မာ က္ မ် ား စြ ာရွ ပါ ိ တ ယ္ ။အခု ေတ ာ ႔ အေျ ခခံ ျ ဖစ္ လိ ႔ ု ဒီ ေလ ာ က္ ထိ ပဲ ထ ည္ လိ ့ က္ ု ပါ တယ ္ ။ PHP Operators ေအာက ္ မွ ာPHP မွ ာ သံ း ု တဲ ႔ operator ေတ ြ ပဲ ျ ဖစ္ ပါ တ ယ္ ။ Arithmetic Operators Arithmetic Operators ေတြ အ ေနနဲ ႔ ဥပမာ တ စ္ ခု ေလာက္ run ၾ က ည္ ပါ ့ မယ ္ ။ <?php $no1=2.PHP Guide Book Moe Myint Shein <?php echo strlen("Hello World!"). ?> သူ ရဲ ႔ ႕ output ကေတ ာ ႔ 12 ပဲ ျ ဖစ္ ပါ တ ယ္ ။ string ရဲ ႕ length ကိ ု looping ေတ ြ နဲ ႔ တျ ခား function အေတ ာ္ မ် ာ း မ် ား မွ ာ အသ ံ း ု ျ ပဳ ဖိ လိ ႔ ု ု အပ္ ပါ တယ ္ ။ Using the strpos() function strpos() function ကိ ုstring တစ္ ခု အ ထဲ မွ ာရွ တဲ ိ ႔character တ စ္ ခုဒါ မွ မဟု တ ္ေနာ က ္string တ စ္ ခု ကိ ုရွ ာဖိ အ တြ ႔ ု က္ အသံ း ု ျ ပဳ ပါ တ ယ္ ။ <?php echo strpos("Hello World!". 10 Youth Dreams 10 . "World").

echo $no3.. ?> Modulus ဆ ိ တ ာကေတ ာ ု ႔ အၾ ကြ င္ း ကိ ု ရွ ာ တာ ျ ဖစ္ ပါ တယ ္ ။5%2 ဆ ိ ရင္ ု 1 ရပါ မယ ္ .. ?> Assignment Operators Assignment Operators ေတ ြ က ေတ ာ႔ အတိ ေရး ု တယ ္ လိ ေျ ႔ ု ပာရမွ ာပါ .။PHP မွ ာသ ံ း ု တဲ ႔ ပံ စံ ု ေတြ ေပါ ။ ႔ x=x+y ဆ ိ ရင္xနဲ ု ႔y နဲ ေပါ ႔ င္ း ပါရတ ဲ တ န္ ႔ ဖိ း ု ကိ ုx ထ ဲ ထ ည္ ပါ ့ လိ ဆိ ႔ ု လိ ု ပါ ု တယ ္ ။အဲ ဒါ ကိ ုPHP မွ ာ assignment operator သံ း ု ျ ပီ း ေတာ႔ x+=y လိ ေရး ႔ ု ပါ တယ ္ ။ ဥပမာတ စ္ ပု ဒ္ ေလ ာ က္ run ၾ ကည ္ ပါ ့ ။ 11 Youth Dreams 11 . echo $no3. echo $no3. $no3= $no1%$no2. $no2=2.PHP Guide Book Moe Myint Shein $no2=3. $no2=2. $no3= $no1/$no2. ?> ဒီ code ကိ ု run ရင္ output 5 ရပါ မယ္ ။ အေပါ င္ း ၊အႏႈ တ္ ၊အေျ မွ ာ က္ ၊ကေတ ာ ႔ ရွ င္ း ပါ တ ယ္ ။Division ဆ ိ တဲ ု ႔ အစား မွ ာေတ ာ ႔ 15 ကိ ု 5 နဲ ႔ စား ရင္ သံ း ု ရပါ မယ္ ။5 ကိ ု 2 နဲ ႔ စား ရင္ 2. 10%2 ဆ ိ ရင္ ု 0 ရပါ မယ ္ ။ <?php $no1=5.5 ရလ ဒ္ ရပါ မယ္ ။ <?php $no1=5. $no3= $no1+$no2.

$y=3. $y=2. else echo "false". ?> အထက ္ ပါ code က ိ ု run မယ ္ ဆိ ု 5 နဲ ႔ 2 နဲ ႔ မညီ တဲ အ တြ ႔ က္ false ရပါ မယ္ ။ ေအာက ္ က အတ ိ င္ ု းvariable x ေရာy ေရာ3 ဆ ိ ျ ု ပီ းတူ ေနတဲ ႔ အတ ြ က္ run တဲ အ ခါoutput true ရပါ ႔ မယ ္ ။ $x=3. $y=2.PHP Guide Book Moe Myint Shein <?php $x=5. ?> Output က 7 ရပါ မယ ္ ။ Comparison Operators Comoparison Operators ေတြ က ေတာ႔ တ န္ ဖိ း ု ျ ခင္ း ႏိ င္ ႈ း ယွ ဥ္ ပါ မယ ္ … အမွ န္ နဲ ႔ အမွ ား ဆိ ျ ု ပီ းရလ ဒ္ ႏွ စ္ ခု ျ ပန္ ထု တ္ ေပး ပါ တ ယ္ ။ == ဆ ိ ရင္ည ီ ု သ လ ား လိ စစ္ ႔ ု ပါ တ ယ္ ။ ဥပမာ 5 က 8 နဲ ညီ ႔ သ လား ဆိ ရင္5==8 လိ ု စစ္ ႔ ု ပါ မယ္result ကေတ ာ ႔false ထြ က္ ပါ မယ္ ။ $x=5. if ($x==$y) echo "true". ?> 12 Youth Dreams 12 . if ($x==$y) echo “true”. else echo “false”. echo $z. $z= $x+=$y.

PHP Guide Book Moe Myint Shein Logical Operators Logical Operators ေတြ အတ ြ က္ လ ည္ းအထ က္ ပါဇယ ာ း ကု ၾ ိ ကည ္ ရင္နား ့ လ ည္ မွ ာပါ . ဒီOperator ေတြ ကိ ုအေရွ ႕ မွ ာ တျ ဖည ္ း ျ ဖည္ း နဲ အ သံ ႔ း ု ျ ပဳ ရင္ းေသခ် ာ နား လ ည္ လ ာပါ လိ မ္ မယ ္ ႔ ။ 13 Youth Dreams 13 ..

elseif နဲ ႔else statements ေတြကိ ုမတ ူ ညီ တဲ ႔condition ေတြ ေပၚ မွ ာ မတ ူ ညီ တဲ ႔လ ု ပ္ ေဆာင္ ခ် က္ ေတြ ကိ ု ေဆ ာင္ ရြ က္ ဖိ အ တြ ႔ ု က္ အသံ း ု ျ ပဳ ပါ တ ယ္ ။ Conditional Statements က် ေနာ္ တိ ႔coding ေရး ု တဲ အ ခါ ႔ မွ ာမၾ ကာ ခဏ ဆ ိ သလ ိ ု ုမတ ူ ညီ တဲ ႔ဆံ း ု ျ ဖတ ္ ခ် က္ ေတြ အ တြ က ္မတူ ညီ တဲ ႔လ ု ပ္ ေဆာင္ မႈ ေတြ ကိ ု ေဆ ာင္ ရြ က္ လိ ၾ ု က ပါ တယ ္ ။အဲ ဒီ လိ လု ု ပ္ ေဆာင္ ႏိ င္ ု ဖိ အ တြ ႔ ု က္ conditional statements ေတ ြ ကိ ု အသံ း ု ျ ပဳ ၾ ကရပါ တ ယ္ ။ The if…else statement အေျ ခအေနတ စ္ ခု က မွ န္ တယ ္ ဆိ ရင္ဒီcode က ိ ု ဆက ္ ု run ပါ . ?> </body> </html> ဒီcode ကိ ုrun ၾ ကည ္ မယ္ ့ ဆိ ရင္တ ကယ ္ ု လိ ႔ဒီ ု ေန႔ က ေသ ာ ၾ ကာေန႔ ျ ဖစ္ ရင္Have a nice weekend လိ ေပၚ ႔ ု မွ ာ ျ ဖစ္ ျ ပီ း ေတာ႔ တျ ခား ေန႔ ဆိ ရင္ ု ေတာ႔Have a nice day လိ ေပၚ ႔ ု မွ ာျ ဖစ္ ပါ တ ယ္ ။ က် ေနာ္ အ ခုrun တာေတာ႔Have a nice weekend လိ ေပၚ ႔ ု ပါ တယ ္ဒီ ေန႔ က ေသာၾ ကာေန႔ ျ ဖစ္ ေနလိ ပါ ႔ ု . else code to be executed if condition is false.PHP Guide Book Moe Myint Shein Chapter 3. ဒီ ဟာ ကိ ု ဥပမာ တ စ္ ခု နဲ ၾ ႔ က ည္ မယ ္ ့ ဆိ ရင္ ု <html> <body> <?php $d=date("D"). အဲ ဒါ နဲ ႔Computer ရဲ ႕ System Date က ိ ုTuesday လိ ေျ ႔ ု ပာင္ း ျ ပီ း က် ေနာ္ ျ ပန္ run ပါ တယ ္ ။Have a nice day လိ ေပၚ ႔ ု ပါ တ ယ္ ခင္ ဗ် ာ… :) ။ 14 Youth Dreams 14 ..Flow Control Functions in PHP PHP If… Else Statements PHP မွ ာ if. တ ကယ ္ လိ ႔ ု မွ ာ း တ ယ္ ဆိ ရင္ ု ဒီ ဘက ္ က code က ိ ဆက ္ ု run ပါ ဆိ တ ာမ် ု ဳ ိ း အတြ က္ ဒီ if…else statement ကိ အသ ံ ု း ု ျ ပဳ ပါ တ ယ္ ။သူ ရဲ ႔ ႕syntax က ေတ ာ႔ ေအာ က္ ေဖာ ျ ္ ပပါ ပံ စံ ု မ် ဳ ိ း ျ ဖစ္ ပါ တယ္ ။ if (condition) code to be executed if condition is true. if ($d=="Fri") echo "Have a nice weekend!". else echo "Have a nice day!"..

} ?> </body> </html> ဒီ code ေလ း ရဲ ႕output ကေတ ာ ႔ Hello! Have a nice weekend! See you on Monday! ျ ဖစ္ ပါ တ ယ္ ခင္ ဗ် ာ။ Computer System Date က ေသ ာၾ ကာ ျ ဖစ္ မေနဘ ူ း ဆိ ရင္ ု ေတာ႔ ေပၚ မွ ာမဟု တ္ ဘူ း ေနာ္ . else code to be executed if condition is false. echo " See you on Monday!". if ($d=="Fri") { echo "Hello! <br/>".။ The elseif statement တစ္ ခု ထက ္ ပိ တဲ ု ႔condition ေတ ြ အ မ် ား ၾ ကီ း ထဲ က တစ္ ခု ခု က မွ န္ ေနရင္code က ိ ုrun ေစခ် င္ တ ယ္ ဆိ ရင္elseif statement ု ကိ အသ ံ ု း ု ျ ပဳ ပါ တ ယ္ ။ သူ ရဲ ႔ ႕syntax ကေတ ာ ႔ if (condition) code to be executed if condition is true. echo "Have a nice weekend!". ဒီ လိ ပံ ု စံ ု ျ ဖစ္ ျ ပီ း ေတာ႔ ဥပမာ ျ ပရရင္ … <html> <body> 15 Youth Dreams 15 . elseif (condition) code to be executed if condition is true.PHP Guide Book Moe Myint Shein တက ယ္ လိ မ် ႔ ု ားcondition တစ္ ခု က မွ န္ တ ယ ္ဒါ မွ မဟု တ္ မွ ား တယ ္ ဆိ တဲ ု အ ခါ ႔ မွ ာတ စ္ ေၾ ကာင္ း ထက ္ ပိ တဲ ု ႔code ေတြ ကိ ု run ေစခ် င္ တယ ္ ဆိ ရင္ ု ေတ ာ႔ curly braces ဆ ိ တဲ ု ႔ { } ထဲ မွ ာထည ္ ထ ား ့ ရမွ ာ ျ ဖစ္ ပါ တယ ္ ။ ဥပမာ… <html> <body> <?php $d=date("D")..

} ဥပမာကိ ု run ၾ က ည္ မွ ့ သ ာသ ေဘာေပါ က္ ႏိ င္ ု မွ ာ ျ ဖစ္ ပါ တယ ္ ။ <html> <body> <?php 16 Youth Dreams 16 .PHP Guide Book Moe Myint Shein <?php $d=date("D"). ?> </body> </html> တက ယ္ လိ ဒီ ႔ ု ေန႔ က ေသာၾ က ာျ ဖစ္ ရင္ Have a nice weekend! လိ ျ ႔ ု ပပါ မယ္ ။တ နဂၤ ေႏြ ျ ဖစ္ ေနရင္ Have a nice Sunday! လ ိ ႔ ု output ျ ပမွ ာျ ဖစ္ ျ ပီ း ေတ ာ႔ တျ ခား ေန႔ တ စ္ ရက္ ရက္ ဆိ ရင္ ု ေတ ာ႔ Have a nice day! လ ိ ပဲ ႔ ု ျ ပမွ ာျ ဖစ္ ပါ တ ယ္ ။ The Switch Statement အေျ ခအေနတ စ္ ခု ကိ မူ ု တ ည္ ထ ား မယ ္ အဲ ဒီ အ ေျ ခအေနေပၚ မွ ာမူ တည ္ ျ ပီ းမွ န္ က န္ တဲ အ ခါဘ ယ္code က ိ ႔ ု run ရမယ ္ … ဘယ ္ case နဲ ကိ ႔ က္ ု ညီ တ ယ္ ဆိ တ ာကိ ု ုစစ္ တ ာျ ဖစ္ ပါ တ ယ္ ။switch case statement က ိ သံ ု း ု တဲ အ ခါ ႔ မွ ာif…elseif…else statement ေတ ြ အ ရွ ည္ ၾ ကီ း သံ း ု ရတာေတြ က ေနလည ္ းသက ္ သ ာေစပါ တယ ္ ။ သူ ရဲ ႔ ႕Syntax ကေအာက္ ေဖာ္ ျ ပပါ အတ ိ င္ ု း ျ ဖစ္ ပါ တယ ္ ။ switch (expression ) { case label1: code to be executed if expression = label1. elseif ($d=="Sun") echo "Have a nice Sunday!". if ($d=="Fri") echo "Have a nice weekend!". break. case label2: code to be executed if expression = label2. break. else echo "Have a nice day!". default: code to be executed if expression is different from both label1 and label2.

ID key ေတြ တ စ္ ခု စီ တိ င္ ု း က တ န္ ဖိ း ု တ စ္ ခု နဲ ႔ ဆက ္ စပ္ ေနတဲ ႔ array မ် ဳ ိ း 17 Youth Dreams 17 . break. default: echo "No number between 1 and 3". break.. code ေတြ ထဲ မွ ာ ပါ တဲ ႔case တစ္ ခု စီ ထဲ က တ န္ ဖိ း ု နဲ ႔expression ရဲ ႕တန္ ဖိ း ု နဲ ကိ ႔ ုႏႈ င္ ိ း ယွ ဥ္ တ ယ္ ။ ကိ က္ ု ညီ တယ ္ ဆိ လိ ု ရွ ႔ ု ရင္ ိ အဲ ဒီ case နဲ ဆက ္ ႔ ႏြ ယ္ တဲ ႔ code ကိ ု execute (run) တ ယ္ ။execute လ ု ပ္ ျ ပီ း တဲ အ ခါေနာက္case ႔ တစ္ ခု ကိ ုဆ က ္ ျ ပီ းမ run ေတာ႔ ေလေအာင္break ကိ သံ ု း ု ျ ပီ း ထြ က္ တယ္ ။တက ယ္ လိ ႔case ေတ ြ ု အား လံ း ု က မမွ န္ ဘူ း ဆိ ရင္ ု default statement က ိ ု execute လ ု ပ္ သြ ား မွ ာပဲ ျ ဖစ္ ပါ တယ ္ ။ PHP Arrays array တစ္ ခု က variable name တ စ္ ခု ေလ း ထည ္ း မွ ာပဲ တ စ္ ခု သိ မဟု ႔ ု တ ္ တ စ္ ခု ထက ္ ပိ တဲ ု ႔ တ န္ ဖိ း ု ေတ ြ ကိ ု သိ မ္ း ဆည ္ း ေပး ပါ တယ ္ ။ က် ေနာ္ တိ အ ေနနဲ ႔ ု ႔တ ခါ တ ရံ မွ ာ ဆ င္ တူ တဲ ႔variable ေတြ အ မ် ာ း ၾ ကီ း ကိ ုဖန္ တီ း လိ တဲ ု အ ခါ ႔ မ် ဳ ိ း ရွ လ ာပါ ိ တယ ္ ။ အဲ ဒီ အ ခါ မွ ာ variable ေတ ြ အ မ် ား ၾ ကီ း မဖန္ တီ း ေတ ာ ႔ ပဲ နဲ ႔array တစ္ ခု ထဲ မွ ာပဲelements ေတြ အ ေနနဲ ႔သ ိ မ္ း လိ က္ ု ႏိ င္ ု ပါ တယ ္ ။ array ထဲ မွ ာရွ တဲ ိ ႔ element တစ္ ခု စီ မွ ာသူ ရဲ ႔ ႕ကိ ယ္ ု ပိ င္ ု အမွ တ္ (ID) ရွ မွ ိ ာျ ဖစ္ တဲ အတ ြ ႔ က္ လြ ယ္ ကူ စြ ာေခၚ သံ း ု ႏိ င္ ု ပါ တယ ္ ။ array အမ် ဳ ိ း အစာ းသ ံ း ု မ် ဳ ိ း ရွ ပါ ိ တယ ္ ။ -Numeric array – ID key က ိ နံ ု ပါ တ္ နဲ ေပး ႔ တဲ ႔ array မ် း ိ -Associative array. case 2: echo "Number 2".။ တက ယ္ လိ ႔ $x=2 လိ ု ႔ assign ု 3 လိ ရမွ ႔ ု ာျ ဖစ္ ပါ တ ယ္ ။ $x=4 လု ပ္ ခဲ ရင္Number 2 ႔ လိ ႔ output ု ျ ပမွ ာ ျ ဖစ္ ပါ တယ ္ ။သ ူ ရဲ ႔ ႕အလ ု ပ္ လု ပ္ ပံ က ေတ ာ႔ ု single expression တ စ္ ခု အမ် ား အာ း ျ ဖင္ ေတ ာ ့ ႔ variable တစ္ လံ း ု ကိ ု တ စ္ ၾ ကိ မ္ evaluate လု ပ္ တ ယ္ ..PHP Guide Book Moe Myint Shein $x=4. switch ($x) { case 1: echo "Number 1". } ?> </body> </html> ဒီ code ကိ ု run လိ က္ ု ရင္ No number between 1 and လိ တ န္ ႔ ု ဖိ း ု သ က္ မွ တ္ ေပး ထာ း ခဲ တ ာေၾ ႔ က ာင္ ့ ပါ . case 3: echo "Number 3". break.

$names[2] ."MaMa". $names[0] ."KoKo"). " are " .. $names[1] = "MaMa". $names[2] = "KoKo"."KoKo"=>19). အဓိ ပၸ ါ ယ္ က ေတာ႔ အ တူ တူ ပါ ပဲ ေရး တဲ ပံ ႔ စံ ု ကြ ာ သြ ား တ ာပါ ။ သူ က လည္ း array ကိ ဖန္ ု တီ း တာ ပါ ပဲ ။ $ages['MgMg'] = "18". echo $names[1] . $names[2] = "KoKo". ?> output အေနနဲ ႔ MaMa and KoKo are MgMg's neighbours ဆ ိ ျ ု ပီ းရလာမွ ာ ျ ဖစ္ ပါ တ ယ္ ။ Associative Arrays associative array မွ ာ ID key တ စ္ ခု စီ ဟ ာ တ န္ ဖိ း ု တ စ္ ခု စီ နဲ ဆ က္ ႔ ႏြ ယ္ ပါ တ ယ္ ။တ ိ က် တဲ ႔တ န္ ဖိ းတစ္ ု ခ် ဳ ိ ႕ နဲ ပတ္ ႔ သ တ္ တဲ ႔ ေဒတ ာ ေတ ြ ကိ ုသိ မ္ း ဆည ္ း တဲ အ ခါ numerical array က အျ ႔ မဲ တ မ္ း အေက ာ င္ း ဆံ း ု နည္ း လ မ္ း မဟု တ္ ပါ ဘူ း …။ associative arrays ကိ သံ ု း ု တဲ အ ခါ ႔ မွ ာ တ န္ ဖိ း ု ေတြ ကိ ုkey အေနနဲ ပါသ ံ ႔ း ု ႏိ င္ ု ျ ပီ း ေတ ာ႔array မွ ာ တန္ ဖိ း ု ေတြ ကိ ုassign လု ပ္ ႏိ င္ ု ပါ တယ္ ။ ရွ င္ း သြ ား ေအာ င္ ဥပမာကိ ၾ ု ကည္ ့ ပါ မယ္ ။ ဒီ ဥပမာမွ ာ က် ေနာ္ တိ ဟ ာလ ူ ႔ ု တ စ္ ေယ ာက္ စီ ကိ ု သူ တိ ရဲ ႔ ု ႕ အသ က္ ကိ ု array က ိ သံ ု း ု ျ ပီ းassign (တန္ ဖိ း ု သ တ္ မွ တ္ ) ပါ တ ယ္ ။ $ages = array ("MgMg"=>18. ဒီ စာေၾ ကာ င္ း မွ ာ ဆိ ရင္ ု ID key က ိ အ လိ ု အ ေလ် ု ာ က္ သတ ္ မွ တ္ ေပး မွ ာျ ဖစ္ ပါ တ ယ္ ။ ေအာက ္ က code မွ ာေတာ႔ က် ေနာ္ တိ က manual သ တ္ ႔ ု မွ တ္ ေပး တ ာျ ဖစ္ ပါ တယ ္ ။ $names[0] = "MgMg"."MaMa"=>20. ေအာက ္ က ပံ စံ ု နဲ လည ္ ႔ း ေရး ႏိ င္ ု ပါ တ ယ္ .PHP Guide Book Moe Myint Shein -Multidimensional array. အဲ ဒီ ႏွ စ္ မ် ဳ ိ း စာလံ း ု ရဲ ႕အက် ဳ ိ း သက ္ ေရာ က္ မႈ က ေတ ာ ႔ အတ ူ တူ ပါ ပဲ ။PHP coding ထဲ မွ ာထည ္ သံ ့ း ု ၾ က ည္ မယ ္ ့ ဆိ ရင္ ု … <?php> $names[0] = "MgMg". "'s neighbours". " and " . 18 Youth Dreams 18 .တစ္ ခု သိ မဟ ု ႔ ု တ္ တ စ္ ခု ထက ္ ပိ တဲ ု ႔ array ေတ ြ ပါ ၀င္ ေနတဲ ႔ array မ် ဳ ိ း နား လည ္ သြ ား ေအာင္ တ စ္ ခု ခ် င္ း စီ ကိ ု ဥပမာနဲ ၾ ႔ က ည္ ၾ ့ ကပါ မယ္ ။ Numeric array numeric array တ စ္ ခု ကိ ု နည္ း လ မ္ း အမ် ဳ ိ း မ် ိ ဳ း နဲ ႔ ဖန္ တီ း ႏိ ု င္ ပါ တယ ္ ။ “ $names = array("MgMg". $names[1] = "MaMa".

?> သူ ရဲ ႔ ႕output က ေတ ာ႔ KoKo is19 years old. " a part of the Griffin family?". $ages['KoKo'] = "19". "Loretta". "Brown"=>array ( "Cleveland".PHP Guide Book Moe Myint Shein $ages['MaMa'] = "20".. 19 Youth Dreams 19 . $ages['KoKo'] = "19".. ထပ္ ဆ င္ ထ ပ္ ့ ဆ င္ ေပါ ့ ႔ …။ <?php $families = array ( "Griffin"=>array ( "Peter". $families['Griffin'][2] . "Junior" ) ). ဒီ code ေတ ြ ကိ ု PHP ထ ဲ မွ ာထ ည္ ေရး ့ တဲ အ ခါ ႔ … <?php> $ages['MgMg'] = "18". $ages['KoKo'] . "Megan" ).". ပဲ ျ ဖစ္ ပါ တ ယ္ ။ Multidimensional Arrays multidimensional array တ စ္ ခု ထဲ မွ ာအဓိ က array ၾ ကီ း ရွ မယ ္ ိ . " years old. "Quagmire"=>array ( "Glenn" ). အဲ ဒီ အ ဓိ က array ၾ ကီ း ထဲ က element တစ္ ခု စီ က လဲ array ျ ဖစ္ ႏိ င္ ု တယ ္ ။အဲ ဒီ sub array တ စ္ ခု စီ ထဲ က elelment ေတ ြ က လ ည္ းarray ထ ပ္ ျ ဖစ္ ႏိ င္ ု တယ ္ . $ages['MaMa'] = "20". "Lois". echo "Is " . echo "KoKo is" .

PHP Guide Book Moe Myint Shein ?> အထက ္ ပါ php code က ိ ၾ ု က ည္ ရင္ ့ $families ဆ ိ တဲ ု ႔ variable ထဲ မွ ာarray တ စ္ ခု ေဆ ာက္ ပါ တ ယ္ ။Griffin.သ က္ မွ တ္ ထ ား တဲ အၾ ႔ ကိ မ္ အ ေရအတ ြ က္ အတ ိ င္ ု းေဖာ္ ျ ပပါcode က ိ ု ထပ္ ခါ ထ ပ္ ခါ run ေနပါ မယ္ ။ foreach – array တ စ္ ခု ထဲ မွ ာရွ တဲ ိ ႔ element တစ္ ခု စီ အ တြ က္ ေဖာ္ ျ ပပါ code ကိ ု run ပါ မယ္ ။ တစ္ ခု ခ် င္ း ဆီ ကိ အ ေသး ု စိ တ္ ၾ ကည ္ ၾ ့ က ရေအာင္ …။ The while Statement အေျ ခအေနတ စ္ ခု မွ န္ ေနပါ က ေဖာ္ ျ ပပါcode ကိ ု run ပါ မယ ္ … မွ န္ ေနသ ေရႊ ႕ ဆက ္ run ေနမွ ာျ ဖစ္ ပါ တ ယ္ ။ Syntax while (condition) code to be executed. } ?> 20 Youth Dreams 20 . $i++. Loretta. "<br/>"..အေျ ခအေနတ စ္ ခု မွ န္ ေနပါ က ေဖာ္ ျ ပပါ code ကိ ု run ပါ မယ္ … မွ န္ ေနသ ေရႊ ႕ ဆ က္ run ေနမွ ာျ ဖစ္ ပါ တယ ္ ။ do…while . Quagmire. Example ေဖာ္ ျ ပပါcode ေလး က variable i အေနနဲ ႔ ၅ထ က္ ငယ ္ ေနဒါ မွ မဟု တ္ ညီ ေနသ ေရႊ ႕ဆ က္ ျ ပီ း ေတ ာ ႔ တ စ္ ၾ ကိ မ္ ျ ပီ း တစ္ ၾ ကိ မ္ looping ပတ္ ေနမွ ာျ ဖစ္ ပါ တ ယ္ ။တစ္ ၾ ကိ မ္ loop ပတ ္ျ ပီ း တိ င္ ု း မွ ာi ရဲ ႕ တ န္ ဖိ း ု က ၁တိ း ု တိ း ု လ ာပါ မယ္ ။ <html> <body> <?php $i=1.တ စ္ ၾ ကိ မ္ ေတ ာ ႔ ေဖာ္ ျ ပပါcode ကိ ု ေသ ခ် ာေပါ က္ run ပါ မယ ္ . Megan ဆ ိ တဲ ု ႔ array သံ း ု ခု ထပ္ ဆ င္ ေဆာက္ ့ ထ ား သ လိ ု Quagmire ထ ဲ မွ ာGlenn Brown ထဲ မွ ာCleveland. $i . Junior ဆ ိ ျ ု ပီ း သံ း ု ခု ထ ပ္ ပါ ေနတာေတြ ႕ ရပါ တ ယ္ ။ဒီ ဟ ာကိ ု run လိ က္ ု ရင္ Output က Is Megan a part of the Griffin family? ရမွ ာျ ဖစ္ ပါ တယ ္ ။Griffin array ရဲ ႕နံ ပါ တ္ ႏွ စ္ အ ခန္ း က Megan ျ ဖစ္ ပါ တယ ္ ။Peter က နံ ပါ တ္ ၀၊Lois က နံ ပါ တ္ ၁ ျ ဖစ္ ပါ တ ယ္ ။ PHP Looping code အပိ င္ ု း ေလ း တ စ္ ခု ကိ ု အၾ ကိ မ္ မ် ား စြ ာrun ဖိ အ လိ ႔ ု ရွ ု တဲ ိ အ ခါlooping က ိ ႔ သံ ု း ု ရပါ တ ယ္ ။PHP မွ ာေအာက္ ေဖာ္ ျ ပပါlooping statements မ် ား ရွ ိ ပါ တယ ္ ။ while . Lois.။အဲ ဒီ ေနာက ္ မွ ာ မွ အေျ ခအေနက မွ န္ ေနသ ေရႊ ႕ ထပ္ ခါ ထ ပ္ ခါ ဆ က္ run ပါ မယ္ ။ for . while ($i<=5) { echo "The number is " . Brown ဆု တဲ ိ သံ ႔ း ု ခု ပါ ၀င္ ပါ တ ယ္ ။Griffin ရဲ ႕ အထဲ မွ ာPeter.

နား လည ္ မယ္ လိ ေမွ ႔ ု ် ာ္ လ င္ ပါ ့ တ ယ္ …။ The do…while Statement တစ္ ၾ ကိ မ္ ေတာ႔ ေဖာ ္ ျ ပပါ code ကိ ု ေသ ခ် ာ ေပါ က္ run ပါ မယ္ .။အဲ ဒီ ေနာက္ i က ငါ း ထက ္ ငယ္ လာ း ညီ လ ား လု စစ္ ႔ ိ ပါ တ ယ္ .... i ရဲ ႕ တန္ ဖိ း ု ကိ ု တ စ္ တိ း ု တဲ အတ ြ ႔ က္ i တန္ ဖိ း ု က2ျ ဖစ္ သြ ား ပါ တယ ္ . The number is 2 ဆိ ျ ု ပီ း ထြ က္ ပါ တ ယ္ . i ရဲ ႕ တန္ ဖိ း ု က ၁ျ ဖစ္ ေနတ ဲ အ တြ ႔ က္ ငယ္ ပါ တယ ္ ဒါ ေၾ ကာ င္ ့ { } ထဲ က code ေတ ြ ကိ ု အလု ပ္ လု ပ္ ပါ တယ ္ ။The number is 1 ဆိ တဲ ု တ စ္ ႔ ေၾ က ာင္ းoutput ထ ြ က္ ပါ တယ ္ … <br/> ေၾ ကာင္ ့ ေအာက ္ တ စ္ ေၾ က ာင္ း ဆ င္ း ပါ တ ယ္ . မွ န္ ေနသေရႊ ႕ ေတ ာ ႔ ထ ပ္ ခါ ထပ္ ခါဆက ္ run ပါ မယ ္ ။ Syntax do { code to be executed. Example ေဖာ္ ျ ပပါဥပမာမွ ာအရင္ ဦ း ဆံ းa ကိ ု တ စ္ ု တိ း ု ပါ တယ ္ အဲ ဒီ ေနာက ္ မွ ာa ရဲ ႕ တ န္ ဖိ း ု က ၅ထက ္ ငယ္ ေနသ ေရႊ ႕ဆ က္ ျ ပီ း တစ္ တိ း ု သြ ာ း မွ ာျ ဖစ္ ပါ တ ယ္ ။ <html> 21 Youth Dreams 21 ..။ဒီ လိ နဲ ု ႔ i ရဲ ႕ တ န္ ဖိ း၆ျ ု ဖစ္ သြ ာ း တဲ အထ ိ ႔ လု ပ္ ပါ တယ ္ … ၆ျ ဖစ္ သြ ား တဲ အ ခါwhile မွ ႔ ာထပ္ စစ္ ေတာ႔ ငါ း ထ က္ မငယ ္ သလ ိ ု မညီ ေတ ာ ႔ တဲ အတ ြ ႔ က္ ... i က ငါ း ထ က္ ငယ ္ ေနေသး တဲ ႔ အတ ြ က္ ထပ္ အ လု ပ္ လု ပ္ ပါ တ ယ္ ...။အဲ ဒီ ေနာက္ မွ ာမွ အေျ ခအေနက မွ ား ေနရင္ ဆ က္ မrun ေတ ာ႔ ပါ ဘူ း . { } ထဲ က code က ိ အလ ု ု ပ္ မလု ပ္ ေတ ာ ပါ ႔ ဘူ း ....PHP Guide Book Moe Myint Shein </body> </html> output အေနနဲ ႔ The number is 1 The number is 2 The number is 3 The number is 4 The number is 5 ဆိ ျ ု ပီ း ရလာမွ ာပါ …။အရင္ ဆံ းvariable i ေလ း ု ကိ ု 1 assign လ ု ပ္ ထ ား ေပး ပါ တ ယ္ . } while (condition). } ကိ ေရာက္ ု တဲ အ ခါ ႔ while မွ ာ တ စ္ ခါ ထ ပ္ သြ ား စစ္ ပါ တယ ္ .

မူ လ အစတန္ ဖိ း ု ေပါ ႔ … cond ကေတာ႔ condition ေပါ ႔ … အဲ ဒီ condition မွ န္ ေနသ မွ ် အလ ု ပ္ လု ပ္ ပါ မယ္ …မွ ား သြ ား တာ နဲ ႔ loop ထဲ က ေနထြ က္ ပါ မယ ္ ။incr ကေတ ာ ႔ မူ လ တန္ ဖိ းinit က ိ ု ု တိ း ု ေပး တဲ ႔ increment ေပါ ႔ …။ ေအာက ္ က ေတ ာ ႔ Hellow World! ဆိ တဲ ု ႔ စာသ ာ း ကိ ု ဆယ ္ ၾ ကိ မ္ ျ ပေပး မယ ္ ႔ ဥပမာ ေလ း ပါ … <html> <body> 22 Youth Dreams 22 .... echo "The number is " .။a က ငါ း ထက ္ ၾ ကီ း သြ ား တဲ အ ခါ ႔ ၾ က မွ looping က ေနထြ က္ သြ ား ပါ တယ ္ . do { $a++. cond.. "<br/>". $a . } while ($a<5). } init ဆိ တာ ု က initial value ကိ ေျ ု ပာတာပါ .. a ကိ ု တ စ္ တိ း ု တဲ အတ ြ ႔ က္ a က တ စ္ ျ ဖစ္ သြ ာ း ပါ တ ယ္ … echo ေၾ ကာ င္ ့ The number is 1 လိ ထြ ႔ ု က္ မွ ာျ ဖစ္ ပါ တ ယ္ .. ?> </body> </html> အေသ း စိ တ္ အ လု ပ္ လု ပ္ ပံ က ေတ ာ ု ႔ variable a ထ ဲ ကိ ု သု ည ထ ည္ ပါ ့ တယ ္ အဲ ဒီ ေနာက္ do {} ထဲ က code ေတ ြ ကိ အ လု ု ပ္ လု ပ္ ပါ တယ ္ . သူ ႕ ရဲ ႕output က… The number is 1 The number is 2 The number is 3 The number is 4 The number is 5 ပဲ ျ ဖစ္ ပါ တ ယ္ ။ The for Statement ရိ း ု ရိ း ု ေျ ပာရရင္ ေတ ာ ႔ code အပိ င္ ု း ေလ း တ စ္ ခု ကိ ု ဘ ယ္ ႏွ စ္ ၾ ကိ မ္ run ေစခ် င္ တ ယ္ ဆိ တာ ု မ် ဳ ိ း ကိ က် ု ေနာ တိ ္ ႔ ု သိ ထ ား တဲ အ ခါ ႔ မွ ာfor statement ကိ သံ ု း ု ပါ တယ ္ ။သ ူ ရဲ ႔ ႕syntax က ေတာ႔ for (init. incr) { code to be executed.။a က ငါ း ထက ္ ငယ္ ေနေသး တဲ အ တြ ႔ က္ do ဆီ ကိ ျ ု ပန္ သြ ား ျ ပီ းdo { } ကိ ထ ပ္ ု အလု ပ္ လု ပ္ ပါ တယ ္ .။<br/> ေၾ ကာင္ ့ ေအာ က္ တ စ္ လိ င္ ု း ဆင္ း ပါ တယ ္ .PHP Guide Book Moe Myint Shein <body> <?php $a=0.

$value. ဒါ ေပမယ ္ ႔ program မျ ပီ း ေသ း တဲ အ တြ ႔ က္ output ေတြ က မျ ပဘ ူ း ေနာ္ . "<br />".... မွ န္ တဲ အတ ြ ႔ က္ Hello World! တစ္ ၾ ကိ မ္ ျ ပပါ တယ ္ ေအာက္ တ စ္ ေၾ ကာင္ း ဆ င္ း ပါ တ ယ္ ..။output အေနနဲ ႔ Hello World! ဆ ိ တဲ ု ႔ စာသားဆယ ္ ေၾ ကာ င္ း ရရွ ပါ ိ တ ယ္ ။ The foreach Statement foreach statement ကိ ေတ ာ ု ႔ array ေတ ြ ကိ ု looping ပတ္ ဖိ အတ ြ ႔ ု က္ အသ ံ း ု ျ ပဳ ပါ တ ယ္ ။သူ ရဲ ႔ ႕Syntax (ပံ စံ ု ) ကေတာ႔ foreach (array as value) { code to be executed. } ျ ဖစ္ ပါ တ ယ္ ။ေအာက္ က ဥပမာကိ ၾ ု က ည္ ရင္ ့ နား လ ည္ မွ ာပါ ။ <html> <body> <?php $arr=array("one".... ငယ္ ေနေသး တဲ အ တြ ႔ က္ ေနာ က္ ထ ပ္ Hello World! တ စ္ ေၾ ကာင္ း ျ ပပါ မယ ္ .. foreach ($arr as $value) { echo "Value: " . $i++) { echo "Hello World!<br />". "two". "three"). Looping ကေနထြ က္ သြ ာ း ပါ တ ယ္ . 10 ထက ္ ငယ ္ လာ းညီ လ ားထ ပ္ ျ ပီ း စစ္ ပါ တယ ္ . အကု န္ ျ ပီ း သြ ာ း မွ တ ခါ တည ္ း ျ ပမွ ာ …။ဟု တ္ ပါ ျ ပီ … အဲ ဒီ လိ နဲ ု ႔ i ကိ တ စ္ ု တိ း ု လိ က ္10 ထ က္ ု ငယ္ လားည ီ လ ားစစ္ လိ က္ ု နဲ ႔ ေနာက ္ ဆံ းi ရဲ ု ႕ တန္ ဖိ း11 ျ ု ဖစ္ သြ ား တဲ အ ခါ ႔ မွ ာမွ . i ရဲ ႕ တ န္ ဖိ း ု ကိ ု တစ္ တိ း ု ပါ တယ ္ ..PHP Guide Book Moe Myint Shein <?php for ( $i=1. $i<=10. } ?> </body> </html> output အေနနဲ ႔ - 23 Youth Dreams 23 . } ?> </body> </html> variable i ရဲ ႕ မူ လ တန္ ဖိ း ု ကိ ု 1 လိ ေပး ႔ ု ျ ပီ း စလ ိ က္ ု ပါ တယ ္ i က 10 ထ က္ ငယ ္ လ ားညီ ေနလ ာ းစစ္ ပါ တ ယ္ .။i က 2 ျ ဖစ္ သြ ာ း ပါ တ ယ္ .

PHP Guide Book Moe Myint Shein Value: one Value: two Value: three ဆိ ျ ု ပီ း ရပါ မယ ္ ။ looping တစ္ ခု စီ တိ င္ ု း အတ ြ က္ array element ရဲ ႕ တန္ ဖိ း ု ကိ ု $value ထ ဲ ကိ ု assign လ ု ပ္ တယ ္ ။array ရဲ ႕pointer ကိ တ စ္ ု ေနရာျ ပီ း တစ္ ေနရာေရႊ ႕ သြ ား တ ယ္ ။ေနာ က္ တ စ္ ၾ ကိ မ္ ထ ပ္ ပတ္ တဲ အ ခါေနာ ႔ က္ ထ ပ္ element တစ္ ခု ေပၚ မွ ာအလ ု ပ္ လု ပ္ ပါ တ ယ္ ။ 24 Youth Dreams 24 .

function ကိ ပိ ု တ္ တယ ္ ။ျ ပီ း မွ writeMyName(). ဆိ ျ ု ပီ း ေခၚ လိ က္ ု ေတာ႔ မွ အလု ပ္ လု ပ္ တ ာျ ဖစ္ ပါ တ ယ္ ။ ပိ ျ ု ပီ း နား လည ္ သြ ား ေအာင္ ေနာ က္ ထ ပ္ ဥပမာတစ္ ခု ထ ပ္ ေရး ပါ မယ ္ ။ <html> <body> 25 Youth Dreams 25 . ?> </body> </html> writeMyName() ဆိ တဲ ု ႔ function ေလ း ကိ အ ရင္ ု ေဆာက္ လိ က္ ု တယ ္ .Working With Functions & Forms PHP Functions အမွ န္ တ ကယ ္ PHP ရဲ ႕ စြ မ္ း အာ း က function ေတ ြ ပါ ပဲ .။ - function က ိ ပိ ု တ္ တဲ အ ခါ ႔ “}” နဲ ပိ ႔ တ္ ရပါ မယ ္ ။ အရွ င္ း ဆံ း ု ပံ စံ ု နဲ ႔ function ရဲ ႕ ပံ စံ ု ေလ း ကိ ေရး ု ၾ ကည ္ ပါ ့ မယ္ ။ Example <html> <body> <?php function writeMyName() { echo "Moe Myint Shein".PHP Guide Book Moe Myint Shein Chapter 4... က ် ေနာ္ တိ လိ ႔ ု အ ပ္ ု တဲ အ ခ် ႔ န္ ိ မွ ာသူ ႕ ကိ ု ေခၚ ျ ပီ း သံ း ု ရမွ ာျ ဖစ္ ပါ တ ယ္ ။ function နဲ ပတ ္ ႔ သတ ္ ျ ပီ း မွ တ္ သာ း ရမွ ာ ေတ ြ က ေတ ာ႔ - function ေတ ြ အာ း လံ း ု ကိ ု “function ()” ဆိ တဲ ု စကား ႔ လံ း ု နဲ ႔ စတင္ ရပါ မယ ္ ။ - function က ိ အ မည္ ု ေပး တဲ ေနရာမွ ႔ ာသ ူ ရဲ ႔ ႕ နာမည္ ကိ ၾ ု က ည္ လိ ့ က္ ု တ ာနဲ ႔ ဒီ function ဟာဘာလ ု ပ္ တဲ ဟာ ႔ လ ည္ း ဆိ တ ာကိ ု ု သိ သ ာထင္ ရွ ား ေအာင္ အ မည္ ေပး သ င္ ပါ ့ တ ယ္ ။နာ မည္ ကိ ု letter ဒါ မွ မဟု တ္ underscore နဲ ႔ စတ င္ သ င္ ပါ ့ တယ ္ နံ ပါ တ္ နဲ ႔ မဟ ု တ္ ပါ ဘူ း ။ - “{ ”က ိ ု function ရဲ ႕ အစမွ ာထည ္ ရပါ ့ မယ္ ။ “{ ” ရဲ ႕ အေနာ က္ မွ ာ ေတ ာ႔ function ရဲ ႕code ေတ ြ ကိ ေရး ု ရပါ မယ ္ . } writeMyName()....။PHP မွ ာbuilt-in နဂိ တ ည္ ု း က ပါ တဲ ႔ functions ေပါ င္ း700 ေက ် ာ္ ရွ ပါ ိ တ ယ္ ။ ဒီ က် ဴ တိ ရီ ု ရယ ္ မွ ာ ေတ ာ ႔ function တ စ္ ခု ကိ ဘ ယ္ ု လိ ဖန္ ု တီ း တယ ္ ဆိ တ ာကိ ု ေရး ု သား သြ ား ပါ မယ္ ။ Creating a PHP Function function ဆ ိ တ ာcode အစု ု အ ေ၀း တ စ္ ခု ပါ ပဲ . သူ ရဲ ႔ ႕code က တစ္ ေၾ ကာင္ း ပဲ ရွ ပါ ိ တယ္ ။နာ မည ္ ကိ ု screen မွ ာ ျ ပေပး မွ ာပါ ။ဒီ အ တိ င္ ု း ပဲ ထ ား လိ ႔ ု ရွ ရင္ ိ မေပၚ ပါ ဘူ း .

Moe Myint Shein is my name.PHP Guide Book Moe Myint Shein <?php function writeMyName() { echo "Moe Myint Shein". "Moe. } echo "My name is ". echo " is my name. အခု ေလ ာက္ ဆိ ု function ရဲ ႕ အလ ု ပ္ လု ပ္ ပံ ကိ ု ု နား လည ္ မယ ္ လိ ႔ ု ေမွ ် ာ လ င္ ္ ပါ ့ တ ယ္ ။ PHP Functions. echo ". writeMyName(). <br />". That's right. 26 Youth Dreams 26 . <br /> That's right.Adding parameters အခု က် ေနာ္ တိ ေရး ႔ ု လိ က္ ု တဲ ႔ writeMyName() ဆိ တဲ ု ႔ function ေလ း ကေတ ာ ႔ အရိ း ု ရွ င္ း ဆံ း ု ပံ စံ ု ေလ း ပါ …။သူ က string ေလ း တစ္ ခု ကိ ု ပဲ echo လု ပ္ ေပး တာေလး ပါ ။function တ စ္ ခု ကိ ပိ ု မိ ု သ က္ ု ၀င္ လႈ ပ္ ရွ ား လာေအာင္ parameters ေတ ြ ကိ ု ထည္ ေပး ့ ႏိ င္ ု ပါ တ ယ္ ။parameter ဆိ တ ာvariable လ ိ ု သ ေဘ ာ ု တ ရာ း ပါ ပဲ ။writeMyName() ဆိ တဲ ု ႔ function name ကိ ၾ ု က ည္ မယ ္ ့ ဆိ ရင္ ု parentheses လ ိ ေခၚ ႔ ု တဲ ႔ () ကိ သ တိ ု ထာ း မိ မွ ာပါ ။paramenter ေတြ ကိ ု အဲ ဒီ parentheses ရဲ ႕ အထ ဲ မွ ာ ထ ည္ ေပး ့ ရမွ ာ ျ ဖစ္ ပါ တယ ္ ။ Example 1 အခု ဥပမာမွ ာတ ူ ညီ တဲ မ် ႔ ဳ ိ း ရိ း ု နာ မည ္ ေတြ နဲ ႔ မတ ူ ညီ တဲ ႔ first name နဲ ကိ ႔ ေရး ု မွ ာ ျ ဖစ္ ပါ တယ ္ ။ <html> <body> <?php function writeMyName($fname) { echo $fname. ".". echo "My name is ". } echo "Hello World! <br />". ?> </body> </html> သူ ရဲ ႔ ႕output က ေတ ာ႔ Hello World! My name is Moe Myint Shein. writeMyName().

?> </body> </html> အခု လိ ု output ထ ြ က္ လာ ပါ မယ္ ။ My name is ShweMoe. echo "My name is "."). "Moe". writeMyName("Ngwe"). ". echo "My name is ". writeMyName("Ngwe"."!"). ဆိ ျ ု ပီ း လွ မ္ း ေခၚ လိ က္ ု တဲ အ ခါ$fname ရဲ ႔ ႕ တန္ ဖိ း ု က Shwe ျ ဖစ္ သြ ား ျ ပီ း ေတ ာ႔ ShweMoe ဆိ တဲ ု ႔ နာ မည ္ ကိ ျ ု ဖစ္ သြ ား ေစပါ တယ ္ ။ က် န္ တ ာေတ ြ လည ္ း အလား တူ ပါ ပဲ ။ အခု ဆ က္ ျ ပီ း ေတ ာ႔ parameter ႏွ စ္ လံ း ု ေပး တဲ ႔ ဥပမာ ကိ ၾ ု က ည္ ၾ ့ ကပါ မယ ္ ။ <html> <body> <?php function writeMyName($fname.. "<br />". $punctuation) { echo $fname. ?> </body> </html> run လ ိ က္ ု တဲ အ ခါအခု ႔ အ တိ င္ ု း ထြ က္ လ ာပါ တ ယ္ ။ 27 Youth Dreams 27 ."). writeMyName("Sein". $punctuation . writeMyName("Shwe".PHP Guide Book Moe Myint Shein writeMyName("Shwe"). echo "My name is ".. My name is SeinMoe အလု ပ္ လု ပ္ ပံ က ေတာ႔ ု writeMyName () ဆ ိ တဲ ု ႔ function ထဲ မွ ာ$fname ဆိ တဲ ု ႔ parameter တ စ္ လံ း ု ထည္ ့ ေပး ထား ပါ တ ယ္ ။ function ထ ဲ မွ ာ ပါ ၀င္ တဲ ႔ code ကလ ည္ း တစ္ ေၾ က ာင္ း တ ည္ း ပါ ပဲ . My name is NgweMoe. echo "My name is ". $fname ဆ ိ တဲ ု ႔ parameter ရဲ ႕ တ န္ ဖိ း ု ရယ ္ သူ ရဲ ႔ ႕ ေနာက္ မွ ာ Moe ဆ ိ တဲ ု ႔ မ် ဳ ိ း ရိ း ု နာမည္ ရယ ္ ကိ ု echo နဲ ရိ ႔ က္ ု ခိ င္ ု း ျ ပီ းေအာက ္ တ စ္ ေၾ က ာင္ း ဆ င္ း ေစထ ာ း တာျ ဖစ္ ပါ တယ ္ ။က ် ေနာ တိ ္ က ႔ ု writeMyName() ဆိ တဲ ု ႔ function ကိ ု Shwe ဆ ိ တဲ ု ႔ parameter ေလး ကိ ထ ည္ ု ေစျ ့ ပီ း ေတာ႔ writeMyName(“Shwe”). } echo "My name is ".". writeMyName("Sein")..

. အဲ ဒီ ေနာက္ $total ကိ ု return ျ ပန္ ပါ တ ယ္ . add() function ကိ ေခၚ ု လိ က္ ု ရင္ $total ရဲ ႕ တန္ ဖိ း ု ကိ ျ ု ပေပး မွ ာျ ဖစ္ ပါ တ ယ္ ။add(1. “!”. My name is NgweMoe! My name is SeinMoe. ?> </body> </html> output . 1 နဲ ႔ 16 နဲ ကိ ႔ ေပါ ု င္ း ျ ပီ း ေတာ႔ $total ထ ဲ ကိ ု 17 ေရာက္ သြ ာ း တ ယ္ . ဆ ိ ျ ု ပီ း ေတာ႔ function ကိ ေခၚ ု လိ က္ ု တဲ အ ခါ ႔ မွ ာ… function အလ ု ပ္ လု ပ္ ပါ ျ ပီ .” ..1+16=17 ျ ဖစ္ ပါ တယ္ ။add () function ထ ဲ မွ ာ$x နဲ ႔ $y parameter ႏွ စ္ လံ း ု ပါ ပါ တယ ္ ။အဲ ဒီ parameter ႏွ စ္ လံ း ု က ရလ ာမယ္ ႔ တ န္ ဖိ း ု ေတ ြ ကိ ု ေပါ င္ း ျ ပီ း$total ထဲ ကိ ထည ္ ု တယ ္ ့ . } echo "1+16=" . add(1.. ပထ မဥပမာ အတ ိ င္ ု းအပါ အ၀င္ $punctuation ဆိ တဲ ု ႔ parameter ေနရာမွ ာပါ “..$y) { $total= $x + $y.16). နဲ ႔ “…” တ ိ က function ႔ ု ကိ ေခၚ ု လိ က္ ု တဲ အ ခါ ႔ တိ င္ ု းတလ ွ ည္ စီ ့ ေနရာ၀င္ ယူ သြ ား တာျ ဖစ္ ပါ တယ္ ။ PHP Functions – Return Values function ေတ ြ ကိ ု တ န္ ဖိ း ု ေတ ြ ကိ ု return ျ ပန္ ဖိ အ တြ ႔ ု က္ လည ္ းအသ ံ း ု ျ ပဳ ႏိ င္ ု ပါ တ ယ္ ။ <html> <body> <?php function add($x. return $total.PHP Guide Book Moe Myint Shein My name is ShweMoe.php" method="post"> Name: <input type="text" name="name"/> Age:<input type="text" name ="age"/> <input type="submit"/> </form> 28 Youth Dreams 28 ..16).. အဲ ဒီ တ န္ ဖိ း ု ကိ ု return ျ ပန္ ထ ား တာျ ဖစ္ တဲ အ တြ ႔ က္ output မွ ာ1+16=17 ဆ ိ ျ ု ပီ း ရလ ာတာျ ဖစ္ ပါ တ ယ္ ။ PHP Forms and User Input user ကေရး သြ င္ း လိ က္ ု တဲ အ ခ် ႔ က္ အ လက ္တနည္ း အား ျ ဖင္ ့Form ေတ ြ က အခ် က္ အ လက ္ ေတြ ကိ ုရယ ူ ဖိ အ တြ ႔ ု က ္PHP မွ ာ $_GET နဲ ႔$_POST ဆိ တဲ ု ႔variable ေတြ ကိ ုအသံ း ု ျ ပဳ ပါ တယ ္ ။HTML form ေတြPHP form ေတြ နဲ အ လု ႔ ပ္ လု ပ္ တဲ အ ခါ ႔ အေရး အၾ ကီ း ဆံ း ု သတ ိ ထ ား ရမွ ာက ေတ ာ႔ HTML Page တ စ္ ခု ထဲ မွ ာ form element ေတ ြ အက ု န္ လံ း ု ဟ ာ PHP code ထဲ မွ ာ အလိ အ ေလ် ု ာ က္ အသံ း ု ျ ပဳ ႏိ င္ ု မွ ာ ျ ဖစ္ ပါ တယ ္ ။ဥပမာ<html> <body> <form action = "welcome.

<br /> You are <?php echo $_POST ["age"].<br /> 29 Youth Dreams 29 .html လ ိ ႔ ု save လိ က္ ု ပါ မယ္ ။ ဒီ ဥပမာေလး မွ ာinput field ႏွ စ္ ခု နဲ ႔ button ေလ း တ စ္ ခု ပါ ပါ တ ယ္ ။user က form ထ ဲ မွ ာျ ဖည ္ ျ ့ ပီ း ေတာ႔ submit button က ိ ႏွ ု ပ္ ိ လိ က္ ု ရင္ form ထဲ က အ ခ် က္ အ လ က္ ေတ ြ ကိ ု welcome.php ဖိ င္ ု ေလ း ကိ ပါ ု ေရး လိ ု က္ ပါ မယ ္ ။ <html> <body> Welcome <?php echo $_POST ["name"].php လိ ႔ ု browser address bar မွ ာေခၚ ျ ပီ းrun ရတာျ ဖစ္ ပါ တယ္ ) welcome1..html လ ိ ေခၚ ႔ ု ျ ပီ းrun မယ္အမည္ နဲ ႔အသက ္ ကိ ုထ ည္ ျ ့ ပီ းsubmit button ႏွ ပ္ ိ လု က္ ိ ရင္ ဒီ လိ ပံ ု စံ ု မ် ဳ ိ းoutput ရလာပါ လိ မ္ မယ္ ႔ ။ Welcome Moe Myint Shein You are 20 years old.php ဆ ိ တဲ ု ႔ file ေလ း ဆီ ကိ ပိ ု ေပး ႔ ု တာ ျ ဖစ္ ပါ တယ ္ ။ အခု ေတာ႔welcome.PHP Guide Book Moe Myint Shein </body> </html> ဒီ code ေလး ကိ ု form1.php မေရး ရေသး တဲ အတ ြ ႔ က ္button က ိ ႏွ ု ပ္ ိ လိ က္ ု ရင္object not found လ ိ ေပၚ ႔ ု ပါ လိ မ္ မယ္ ႔ ။ welcome.php" method ="get"> Name:<input type="text" name = "name1"/> Age: <input type= "text" name = "age1"/> <input type="submit"/> </form> ဒီ code ေလး ကိ ုform2. ?> years old. ?>. </body> </html> ဒါ ေလ း ကိ ုwelcome.php လ ု ႔ ိ save လိ က္ ု ပါ တယ ္ ။ (က် ေနာ က ေတာ႔ ္ စာအု ပ္ ရဲ ႕ အစပိ င္ ု း မွ ာ ေျ ပာခဲ သ လိ ႔ ပဲ ု php နဲ ႔html file ေတ ြ အ ား လံ း ု ကိ ုC: ေအာက ္ က xampp ေအာက္ က htdocs ေအာက္ က php ရဲ ႕ ေအာ က္ ထဲ မွ ာပဲ save တာျ ဖစ္ ပါ တ ယ္ ။ဒါ မွ http://localhost/php/form2. PHP $_GET PHP $_GET variable ကိ ု get method ကိ ု သံ း ု ျ ပီ း ေတ ာ႔ form တစ္ ခု က တန္ ဖိ း ု ေတြ ကိ ု ရယူ ဖိ အတ ြ ႔ ု က္ အသ ံ း ု ျ ပဳ ပါ တ ယ္ ။ $_GET variable က HTTP GET method ကေနပိ လိ ႔ ု က္ ု တဲ ႔ variable names ေတ ြ နဲ ႔ တ န္ ဖိ း ု ေတ ြ ရဲ ႕array တစ္ ခု ျ ဖစ္ ပါ တ ယ္ ။ GET method ကိ အ သံ ု း ု ျ ပဳ ျ ပီ း အခ် က္ အ လက ္ ေတြ ကိ ု ပိ တဲ ႔ ု အ ခါ ႔ မွ ာ (browser ရဲ ႕ address bar မွ ာ ျ ပလ ိ ရွ ႔ ု ရင္ ိ ) လူ တိ င္ ု း ျ မင္ ရပါ တယ ္ ။ျ ပီ း ေတာ႔ အမ် ား ဆံ း100 characters ပဲ ု ပိ လိ ႔ ု ရတ ယ ္ ႔ ု ဆိ တဲ ု ႔ ကန္ သ န္ ႔ ခ် ႔ က္ ရွ ပါ ိ တယ ္ ။ Example <form action ="welcome1. ?>. ျ ပီ း ရင္form1.php ဆိ တဲ ု ႔ file ကိ ေအာက္ ု ပါ အတ ိ င္ ု း ေရး ျ ပီ း ေတာ႔ save လ ိ က္ ု ပါ တယ ္ Welcome <?php echo $_GET["name1"].php လ ိ အ မည ္ ႔ ု ေပး ျ ပီ းခု နက form1.html နဲ ေနရာ ႔ အတ ူ တ ူfolder တ စ္ ခု ထ ည္ း မွ ာ save လ ိ က္ ု မယ ္ .html က ိ ုhttp://localhost/php/form1.

.php လ ိ ႔ ု save ပါ တယ ္ ။ Example <form action="welcome2. ?> years old! အခု အ ခ် န္ ိ မွ ာ form2.php ဖိ င္ ု ထဲ မွ ာ name1 နဲ ႔age1 ရဲ ႕ တ န္ ဖိ း ု ေတ ြ ကိ ု$GET variable နဲ ႔catch လု ပ္ ထ ား တဲ အတ ြ ႔ က္ browser မွ ာအခု လိ ျ ု ပပါ တ ယ္ ။ Welcome moemyintshein. ?> years old! PHP $_POST $_POST variable ကေတ ာ ႔ HTTP POST method က ိ သံ ု း ု ျ ပီ းvariable name နဲ ႔ values ေတ ြ ရဲ ႕array တ စ္ ခု ပဲ ျ ဖစ္ ပါ တ ယ္ ။ method= “post” ဆိ ျ ု ပီ း ေတ ာ ႔form တစ္ ခု က တ န္ ဖိ း ု ေတြ ကိ ုရယ ူ ဖိ အ တြ ႔ ု က ္သံ း ု ပါ တယ္ ။POST method ကိ အ သံ ု း ု ျ ပဳ ရင္ ပိ လိ ႔ ု က္ ု တဲ ႔အခ် က္ အလ က္ ေတြ ကိ ုbrowser address bar မွ ာမျ မင္ ရတဲ အျ ႔ ပင္အက န္ အသ န္ ႔ မရွ ႔ လည ္ ိ း ပိ ႏိ ႔ ု င္ ု ပါ တ ယ္ ။ က် ေနာ္ က ေတ ာ ႔ form3.php ကိ ုrun လ ိ က္ ု တဲ ပါ ႔ တ ယ္ ။ text box ႏွ စ္ ခု ကိ ျ ု ဖည ္ ျ ့ ပီ း ေတာ႔submit button ႏွ ပ္ ိ လိ က္ ု တဲ အ ခါ ႔ address bar မွ ာ http://localhost/php/welcome1.php ရဲ ႕code မွ ာPOST ကိ သံ ု း ု ျ ပီ း လ က္ ခံ ပါ မယ္ ။ Welcome <?php echo $_POST["name"]. ?>.<br /> You are <?php echo $_POST["age"].php ဖိ င္ ု ေလး မွ ာ $_GET ေနရာမွ ာ $_REQUEST လ ိ ေအာက္ ႔ ု ပါ အတ ိ င္ ု း ေျ ပာင္ း ေရး ရင္ လ ည္ း အတူ တူ ပဲ အလ ု ပ္ လု ပ္ တ ာျ ဖစ္ ပါ တ ယ္ ။ Welcome <?php echo $_REQUEST["name1"]. $_POST နဲ ႔ $_COOKIE တ ိ အ လု ႔ ု ပ္ လု ပ္ သလ ိ လု ု ပ္ ေပး ပါ တ ယ္ ။Get method နဲ ျ ႔ ဖစ္ ျ ဖစ္ POST method နဲ ျ ႔ ဖစ္ ျ ဖစ္ ပိ လိ ႔ ု ု က္ တဲ ႔ data ေတ ြ ရဲ ႕result ကိ ရရွ ု ေစဖိ ိ အ တြ ႔ ု က္ အသံ း ု ျ ပဳ ႏိ င္ ု ပါ တယ ္ ။ အကယ ္ လိ ႔ခု ု နက welcome1.php" method="post"> Enter your name: <input type="text" name="name" /> Enter your age: <input type="text" name="age" /> <input type="submit" /> </form> welcome2. welcome1. ?> years old! 30 Youth Dreams 30 .PHP Guide Book Moe Myint Shein You are <?php echo $_GET["age1"]. ?>. You are 20 years old! $_GET variable ကိ အသ ံ ု း ု ျ ပဳ တဲ အ ခါvariable name ေတြ ႔ နဲ ႔တန္ ဖိ း ု ေတြ ကိ ု address bar မွ ာ ျ ပတာကိ ခံ ု ရမွ ာျ ဖစ္ တဲ အ တြ ႔ က္ password ေတြ နဲ ႔ လူ သိ မခံ ေစလိ တဲ ု ႔ အခ် က္ အ လ က္ ေတ ြ ကိ ု ပိ ေပး ႔ ု တဲ အ ခါ ႔ မွ ာ မသ ံ း ု သင္ ပါ ့ ဘူ း … ဒါ ေပမယ ္ ႔ တခ် ဳ ိ ႕ ေနရာေတြ မွ ာေတာ႔ အခု လိ ု variable ေတ ြ ကိ ု URL မွ ာျ မင္ ရတဲ အတ ြ ႔ က္ အက် ဳ ိ း ရွ ိ ပါ တယ ္ ။အရမ္ း ၾ ကီ း တဲ ႔ variable values ေတ ြ ကိ ု လည္ း မက ိ င္ ု တြ ယ္ ႏိ ု င္ ပါ ဘူ းcharacter အလံ း100 ထ က္ ု ပိ လိ ု မရလ ိ ႔ ု ပါ ႔ ု ။ THE $ REQUEST Variable $_REQUEST variable က $_GET.php?name1=Moe+Myint+Shein&age1=20 ဆိ ျ ု ပီ း ေတ ာ႔ ေပၚ သြ ာ း တာေတ ြ ရပါ ႔ တယ ္ .<br /> You are <?php echo $_REQUEST["age1"].

php က ိ ု run ျ ပီ း ေတာ႔ အမည္ အသ က္ တိ ကိ ႔ ု ု ျ ဖည္ ျ ့ ပီ းsubmit လု ပ္ တဲ အ ခါ ႔ GET method နဲ မတ ူ ႔ ပဲ address bar မွ ာ http://localhost/php/welcome2.။တ ခါ တရံ မွ ာ GET method ကိ အသ ံ ု း ု ျ ပဳ ျ ပီ း ေတာ႔ တခါ တရံ မွ ာPOST method က ိ သံ ု း ု တာကပု သ င္ ိ ေလ် ့ ာ္ ပါ တ ယ္ ။ 31 Youth Dreams 31 .php ဒီ လိ ေလး ု ပဲ ျ ပေပး ပါ တ ယ္ ။ output ကေတာ႔ အထက ္ က GET method တု န္ း ကလ ိ ပဲ ု ျ ဖစ္ မွ ာ ပါ ။ $_REQUEST Variable ကိ ု$POST ေနရာ မွ ာထည ္ ျ ့ ပီ း သံ း ု ရင္ လည ္ းတ ူ တူ ပဲ ရမွ ာျ ဖစ္ ပါ တ ယ္ .PHP Guide Book Moe Myint Shein form3..

m. minute.09.Adding a Timestamp date() function ထ ဲ က ဒု တိ ယ parameter ျ ဖစ္ တဲ ႔timestamp ကိ ပါ ု ထည္ ့ ျ ပီ း သံ း ု ၾ ကည ္ ပါ ့ မယ ္ ။အခု ထ ပ္ ျ ပီ း ၾ က ည္ ၾ ့ ကမယ ္ ႔ ဥပမာေလး မွ ာ mktime () ဆ ိ တဲ ု ႔function ေလ း ကိ သံ ု း ု ျ ပီ း ေတာ႔မနက ္ ဖန္ အတ ြ က ္timestamp တစ္ ခု ကိ ဖန္ ု တီ း ပါ မယ္ ။ mktime() function အေနနဲ ႔ specified date တစ္ ခု အ တြ က္ Unix timestamp က ိ ု return ျ ပန္ ေပး ပါ တယ ္ ။သ ူ ႕ ရဲ ႕Syntax ကေတာ႔ mktime(hour. month. second. echo date ("Y-m-d").”. ?> အထက ္ ပါ code က ိ ု run လ ု က္ ိ မယ ္ ဆိ ရင္ ု ေအာက္ ပါ ပံ စံ ု အတ ိ င္ ု းoutput ရလ ာမွ ာပဲ ျ ဖစ္ ပါ တယ ္ ။ 2009/09/13 2009. “. echo "<br />".d"). “-“ အစရွ တဲ ိ ႔ character ေတြ ကိ လည ္ ု းletter ေတြ ၾ ကား ထဲ မွ ာထည ္ သြ ့ င္ းအသံ း ု ျ ပဳ ႏိ ု င္ ပါ တယ ္ ။ <?php echo date("Y/m/d"). year.PHP Guide Book Moe Myint Shein Chapter 5 . timestamp) ျ ဖစ္ ပါ တယ ္ ။format ဆု တဲ ိ ႔parameter က ေတ ာ႔မျ ဖစ္ မေနပါ ၀င္ ဖိ လိ ႔ ု အ ပ္ ု ပါ တ ယ္ ။ အခ် န္ ိ ရဲ ႕ format ကိ ုသက ္ မွ တ္ ေပး တာျ ဖစ္ ပါ တ ယ္ ။timestamp ကေတ ာ႔ optional ပါ … default အေနနဲ ကေတ ာ ႔လက ္ ရွ ိ ေန႔ ရက ္ နဲ ႔ အခ် န္ ိ ကိ ု timestamp အေနနဲ ႔ သံ း ု သြ ား မွ ာျ ဖစ္ ပါ တ ယ္ ။timestamp ဆိ တာ ု က ေတာ႔ 1970 ဇန္ န၀ါ ရီ တ စ္ ရက္ GMT 00:00:00 ကေနစတဲ ႔ စက ၠ န္ အ ေရအတ ြ ႔ က္ ျ ဖစ္ ပါ တ ယ္ ။Unix Timestamp လ ိ လည ္ ႔ ု းေခၚ ၾ က ပါ တယ ္ ။ date() function ရဲ ႕ ပထ မ parameter ျ ဖစ္ တဲ ႔format က date/time တစ္ ခု ကိ ုဘ ယ္ လိ ုformat ေပး ရမလ ဲ ဆိ တာ ု သတ ္ မွ တ္ ေပးပါ တ ယ္ ။ေန႔ ရက ္ နဲ ႔အခ် န္ ိ ပံ စံ ု ေတြ ကိ ုကိ ယ္ ု စာ း ျ ပဳ ေပး ဖိ အ တြ ႔ ု က ္letter ေတ ြ ကိ အ သံ ု း ု ျ ပဳ ပါ တယ္ ။အသ ံ း ု ျ ပဳ ႏိ င္ ု တဲ ႔ ပံ စံ ု ေတ ြ က ေတ ာ ႔ - d . echo "<br />". is_dat) ျ ဖစ္ ပါ တယ ္ ။ အနာဂတ္ က မနက္ ဖန္ ျ ဖစ္ တဲ အ တြ ႔ က္ တစ္ ရက္ ပဲ ထ ပ္ ေပါ င္ းေပး ရပါ မယ္ ။ mktime() function ရဲ ႕day ဆ ိ တဲ ု ႔argument မွ ာ တ စ္ ရက ္ ထ ပ္ ေပါ င္ း ေပး လိ က္ ု ရံ နဲ ု ႔ မနက ္ ဖန္ အခ် ိ န္ နဲ ႔ ေန႔ ကိ ေဖာ္ ု ျ ပမွ ာျ ဖစ္ ပါ တ ယ္ ။ 32 Youth Dreams 32 .လတ စ္ လ ရဲ ႕ ရက္ ေတ ြ ျ ဖစ္ ပါ တ ယ္ ။(01-31) - m .13 2009-09-13 date() function ထဲ မွ ာ format ဆိ တဲ ု ႔ parameter တစ္ ခု ထဲ ပါ ၀င္ တဲ ႔ ပံ စံ ု ျ ဖစ္ ပါ တ ယ္ ။ timestamp အေနနဲ ႔ အခု ေရာက္ ေနတ ဲ အ ခ် ႔ န္ ိ နဲ ေန႔ ႔ ကိ ု အလ ိ ု အေလ် ာ က္ ေခၚ သံ း ု သြ ား တ ာျ ဖစ္ ပါ တ ယ္ ။ PHP Date.PHP Date. Include & File Handling The PHP Date() Function အခ် န္ ိ နဲ ႔ ေန႔ ရက ္ ေတြ ကိ ု ပံ စံ ု ခ် ဖိ အတ ြ ႔ ု က္ ဒီ function ကိ အသ ံ ု း ု ျ ပဳ ပါ တ ယ္ ။သူ ရဲ ႔ ႕Syntax က ေတာ႔ date(format.လ က္ ရွ လျ ိ ဖစ္ ပါ တ ယ္ ။(01-12) - Y – digit ေလး လံ း ု နဲ ေရး ႔ တဲ ႔ လက္ ရွ ိ ႏွ စ္ ပဲ ျ ဖစ္ ပါ တယ ္ ။ “/”. day. echo date("Y.

0.. echo "Tomorrow is ". $tomorrow).date("m").date("d")+1. date("Y")).PHP Guide Book Moe Myint Shein <?php $tomorrow = mktime(0. date("Y/m/d".0.php ဆ ိ တဲ ု ႔ header file တစ္ ခု ရွ တယ ္ ိ လိ ႔ ယူ ု ဆၾ ကည ္ ပါ ့ မယ ္ ။ ဒီheader file ကိ ု page တစ္ ခု မွ ာေပၚ ဖိ အ တြ ႔ ု က္ include() function ကိ ေအာက္ ု ပါ အတ ိ င္ ု း အသ ံ ျ ု ပဳ ႏိ င္ ု ပါ တယ ္ ။ <html> <body> <?php include("header. ဒါ ေပမယ္ ႔script ကိ ေတာ႔ဆက ္ ု ျ ပီ း execute လ ု ပ္သ ြ ာ း မွ ာ ျ ဖစ္ ျ ပီ း ေတာ႔require () function က ေတာ႔error ထု တ္ ေပး မယ္ျ ပီ း ရင္script က ိ လည ္ ု းဆက ္ ျ ပီ း execute မလု ပ္ ေတ ာ ဘ ဲရပ္ ႔ လိ က္ ု မွ ာျ ဖစ္ ပါ တယ ္ ။ ဒီfunction ႏွ စ္ ခု ကိ ုစာ မ် က္ ႏွ ာေတြ အ မ် ား ၾ ကီ း ေပၚ မွ ာ ထ ပ္ ခါ ထ ပ္ ခါ အသံ း ု ျ ပဳ ႏိ င္ ု တဲ ႔function ေတြheader ေတြfooter ေတ ြနဲ ႔elements ေတြ ကိ ုဖန္ တီ း ဖိ ႔အသံ ု းျ ု ပဳ ၾ က တာျ ဖစ္ ပါ တ ယ္ ။ ဒီ လိ လု ု ပ္ တာ ဟ ာ developer အတြ က ္ အခ် န္ ိ ကု န္ သ က္ သာေစပါ တယ ္ ။ ဆိ လိ ု တာ ု က က် ေနာ တိ ္ ရဲ ႔ ု ႕ web page ေတ ြ အ ား လံ း ု မွ ာပါ ၀င္ ေစခ် င္ တဲ ႔header ဒါ မွ မဟု တ ္menu file ေလး တစ္ ခု ကိ ုဖန္ တီ း ႏီ င္ ု ပါ တ ယ္ ။ header က ိ ုupdate လု ပ္ ဖိ လု ႔ ု အ ပ္ ိ တဲ အ ခါ ႔ ဒီ include file တ စ္ ခု ထဲ ကိ ပဲ update ု လု ပ္ ဖိ လိ ႔ ု မွ ု ာျ ဖစ္ သလ ိ ု site ထဲ ကိ ု စာမ် က္ ႏွ ာ အသ စ္ တ စ္ ခု ထ ပ္ ေပါ င္ း တဲ အ ခါ ႔ မ် ိ ဳ း မွ ာလ ည္ းweb page ေတြ အ ား လံ း ု ရဲ ႕link ေတြ ကိ ု update လ ု ပ္ ရမဲ အ စားmenu ႔ file ေလ း ကိ ပဲ ု ေျ ပာင္ း လဲ ျ ပင္ ဆ င္ ေပး ရံ ပဲ ု ျ ဖစ္ ပါ တ ယ္ ။ Example က် ေနာ္ တိ မွ ႔ ု ာ header. ?> သူ ႕ ရဲ ႕output ကေတာ႔Tomorrow is 2009/09/14 ပဲ ျ ဖစ္ ပါ တယ ္ ။ဒီ ေန႔ လ က္ ရွ အ ခ် ိ န္ ိ က စက ္ တ င္ ဘ ာ13 ျ ဖစ္ တဲ အ တြ ႔ က္ ျ ဖစ္ ပါ တ ယ္ ။ PHP Include File Server Side Includes ဆိ တဲ ု ႔ SSI က ိ ု စာ မ် က္ ႏွ ာေပါ င္ း မ် ာ း စြ ာေပၚ မွ ာထပ္ ခါ ထပ္ ခါ အသ ံ း ု ျ ပဳ မယ ္ ႔ functions ေတြ header ေတ ြ footer ေတ ြ elements ေတ ြ ကိ ု ဖန္ တီ း ဖိ အတ ြ ႔ ု က္ အသံ း ု ျ ပဳ ပါ တယ ္ ။ Server Side Includes include() ဒါ မွ မဟ ု တ ္require() ဆိ တဲ ု ႔function ကိ သံ ု း ု ျ ပီ း ေတ ာ႔PHP file တ စ္ ခု ထဲ ကိ ုဆ ာ ဗာက မ run ခင္ မွ ာ file ရဲ ႕ content ကိ ုထ ည္ ေပး ့ ႏိ င္ ု ပါ တ ယ္ ။ ဒီfunction ႏွ စ္ ခုရဲ ႕ အလ ု ပ္ လု ပ္ ပံ က ေနရာအေတာ္ ု မ် ား မ် ာ း မွ ာအတူ တူ ျ ဖစ္ ပါ တ ယ္ ။ ကြ သြ ဲ ာ း တာက ေတာ႔include () function အေနနဲ ႕ က warning ကိ ုထု တ္ ေပး မယ ္ .php"). ?> <h1> Welcome to my home page</h1> <p> Some text</p> </body> </html> Example 2 33 Youth Dreams 33 .

php ဆိ တဲ ု ႔ file ေလ း ပါ ၀င္ သ င္ ပါ ့ တ ယ္ ။ဥပမာ ဒါ ကေတ ာ ႔ default.com/default.php ဆ ိ တဲ ု ႔file သ ံ း ု ခု စလံ း ု မွ ာmenu.php နဲ ႕menu. about.com/contact.php က ေတာ႔ directory(folder) တစ္ ခု ထဲ မွ ာ ပဲ ရွ ရပါ ိ မယ ္ ။ အကယ ္ ၍ က် ေနာ္ တိ က about.php .php နဲ ႔ ပဲ အဆ ံ း ု သ တ္ တ ာျ ဖစ္ ပါ တ ယ္ ။ အခု တ စ္ ခါ web page ေတ ြ အ ား လံ း ု မွ ာအသံ း ု ျ ပဳ မယ္ ႔ menu file ေလး တ စ္ ခု ရွ ိ တယ ္ လိ ႔ ု ယူ ဆ ပါ မယ ္ ေအာက္ က menu.php ကိ ု ပဲ run တဲ အ ခါoutput အေနနဲ ႔ ႔ Home | About Us | Contact Us ဆိ ျ ု ပီ း ေတာ႔ ရလ ာ မွ ာျ ဖစ္ ပါ တ ယ္ ။default.moemyintshein.com/about.</h1> <p> Some text</p> </body> </html> 34 Youth Dreams 34 .php ထ ဲ က code ပဲ ျ ဖစ္ ပါ တ ယ္ ။ <html> <body> <?php include("menu.PHP Guide Book include Moe Myint Shein file ေတြ ဟာ အမ် ား အာ း ျ ဖင္ ့ .?> <h1> Welcome to my about me page.php ကိ ု run တဲ အ ခါ ႔ မွ ာေတာ႔ Home | About Us | Contact Us Welcome to my home page Some text ယခု လိ ု ပဲ ေပၚ မွ ာျ ဖစ္ ပါ တ ယ္ ။default.php"> About Me</a> | <a href="http://www.moemyintshein.php"> Contact Me</a> </body> </html> default.php"> Home </a> | <a href= "http://www.php နဲ ႔contact.php က ိ ႔ ု ု ေအာက ္ ပါ အတိ င္ ု း ေရး မယ ္ ဆိ ရင္ ု <html> <body> <?php include("menu.moemyintshein.?> <h1> Welcome to my home page</h1> <p> Some text</p> </body> </html> က် ေနာ္ တိ ႔ ု menu.php").php").php က ိ ေလ႔ ု လာ ၾ ကည ္ ပါ ့ မယ္ ။ <html> <body> <a href ="http://www.

com/contact. 35 Youth Dreams 35 .</h1> <p> Some text</p> </body> </html> အခု လိ ပဲ ု ေတြ ႕ ရမွ ာျ ဖစ္ ပါ တ ယ္ ။ က် ေနာ္ တိ အ ေနနဲ ႔ ု ႔ contact.php ု file ကိ အသ ံ ု း ု ျ ပဳ ျ ခင္ း အား ျ ဖင္ menu ကိ ျ ု ပန္ ေခၚ ျ ပီ း link ေတ ြ ရဲ အ စီ အ စဥ္ ကိ ု ေျ ပာင္ း လဲ ခ် င္ တဲ အ ခါ ႔ အမည ္ ေျ ပာင္ း ခ် င္ တဲ အ ခါဒါ ႔ မွ မဟ ု တ ္site ထဲ ကိ ု ေနာက္ ထ ပ္ web page ထ ပ္ ထ ည္ ့ ခ် င္ တဲ အ ခါ ႔ ေတ ြ မ် ဳ ိ း မွ ာpage တ စ္ ခု စီ file တစ္ ခု စီ မွ ာ ျ ပင္ ဖိ မလ ိ ႔ ု ဘဲ ု နဲ ႔ menu.com/about.PHP Guide Book Moe Myint Shein ေအာက ္ ပါ အတိ င္ ု းOutput ရမွ ာ ျ ဖစ္ ပါ တယ ္ ။ Home | About Us | Contact Us Welcome to my about me page.com/default.php ထ ဲ မွ ာရွ တဲ ိ ႔ code က ိ ပဲ ု ျ ပင္ လိ က္ ု ရံ ပဲ ု ျ ဖစ္ ပါ တ ယ္ ။ The require() Function require () function က include() function အလ ု ပ္ လု ပ္ သ လိ ပဲ ပံ ု စံ ု တူ အ လု ပ္ လု ပ္ ပါ တ ယ္ ။ error ကိ ကိ ု င္ ု တြ ယ္ တဲ ေနရာမွ ႔ ာပဲ ကြ ာ ျ ခာ း မႈရွ တ ာျ ိ ဖစ္ ပါ တယ ္ ။ include() function ကိ သံ ု း ု ရင္warning ေပး ရံ သ ာေပး ု ျ ပီ းscript ကိ ဆ က္run မွ ု ာ ျ ဖစ္ ေပမယ ္ ႔require() function ကိ သံ ု းထ ာ ု း ရင္ ေတာ႔error message ျ ပျ ပီ း တ ာနဲ ႔ဆက ္ ျ ပီ း ေတာ႔ လ ည္ း execute လ ု ပ္ မွ ာမဟု တ္ ေတာ႔ ပါ ဘူ း ။ include() function နဲ ႔ဖိ င္ ု တ စ္ ခု ကိ ေခၚ ု သံ း ု ထာ း ျ ပီ းအဲ ဒီ ဖိ င္ ု ကိ ရွ ု ာမေတြ ရင္ ႔ ေသာ္ လ ည္ း ေကာင္ းerror တစ္ ခု ခု ျ ဖစ္ တ ယ္ ဆိ ရင္ ု ေအာက ္ ပါ အတိ င္ ု းerror message တတ ္ မွ ာျ ဖစ္ ပါ တယ ္ ။ PHP CODE <html> <body> <?php include("wrongFile.php">Home</a> | <a href="http://www.w3schools.w3schools.php">Contact Us</a><h1> Welcome to my about me page. Some text သူ ရဲ ႔ ႕source က ိ ု ၾ က ည္ မယ္ ့ ဆိ ရင္ ု လည ္ း <html> <body> <html> <body> <a href="http://www.php").php ေရး ႏိ င္ ု တ ာျ ဖစ္ ပါ တယ ္ ။ include မွ ာလည ္ း အခု လိ ပဲ include.php">About Us</a> | <a href="http://www.w3schools.

include]: failed to open stream: No such file or directory in C:\xampp\htdocs\php\10.php Warning: include() on [function.php) [function.C:\xampp\php\pear\') line Failed in opening 5 'wrongFile.C:\xampp\php\pear\') in C:\xampp\htdocs\php\10.php").php' (include_path='. echo "Hello World!".require]: line Failed opening required 5 'wrongFile.php for on inclusion line 5 Hello World! error message ဘ ယ္ လိ ပဲ ု ျ ပျ ပ echo ေၾ ကာင္ ့ရလ ာတဲ ႔Hello World က ိ ေတာ႔ execute လု ု ပ္ တ ာပဲ ျ ဖစ္ ပါ တယ ္ ။ဒါ ဟာ include ကိ သံ ု း ု တဲ အ တြ ႔ က ္warning ေပး ရံ ပဲ ု ရွ ျ ိ ပီ းexecute လ ု ပ္ တ ာကိ ု မရပ္ လိ က္ ု တဲ အ တြ ႔ က္ ျ ဖစ္ ပါ တယ ္ ။အခု ဒီဥပမာ ကိ ပဲ ု require() function နဲ ေျ ႔ ပာင္ း ျ ပီ းေရး ၾ က ည္ ပါ ့ မယ ္ ။ PHP CODE <html> <body> <?php require("wrongFile..require]: failed to open stream: No such file or directory in C:\xampp\htdocs\php\10. ?> </body> </html> Error Message Warning: require(wrongFile.php Fatal error: require() on [function..PHP Guide Book Moe Myint Shein echo "Hello World!".php) [function.php on line 5 36 Youth Dreams 36 .include]: (include_path='. ?> </body> </html> ERROR MESSAGE Warning: include(wrongFile.php' C:\xampp\htdocs\php\10.

.txt"..PHP Guide Book Moe Myint Shein echo statement က ိ ေတာင္execute မလ ု ု ပ္ ပါ ဘူ း require ကိ သံ ု း ု ထ ား တဲ ျ ႔ ဖစ္ ပါ တ ယ္။ error ျ ပျ ပီ း တ ာနဲ ႔execute လု ပ္ တ ာက ိ ပါ ု ရပ္ လိ က္ ု တာ ျ ဖစ္ ပါ တယ ္ ။က ် ေနာ္ တိ ႔တ ကယ ္ေရး ု တဲ အ ခါ ႔ မွ ာေတ ာ႔include() ကိ သံ ု း ု မယ္ အ စာ ႔ း require() ကိ သံ ု း ု ဖိ ႔recommend လု ု ပ္ ပါ တယ ္ ။အက ယ္ ၍ file ေတ ြ missing ျ ဖစ္ ေနတာမ် ဳ ိ းနာမည ္ မွ ာ း ေနတာမ် ဳ ိ း ျ ဖစ္ တဲ အ ခါ ႔ မွ ာscript ကိ ု ဆ က္ လ က္ ျ ပီ းexecute မလု ပ္ ေစသင္ တဲ ့ အ တြ ႔ က္ ျ ဖစ္ ပါ တယ္ ။ PHP File Handling Opening a File PHP မွ ာ fopen() function က ိ ုfile ေတ ြ ကိ ု ဖြ င္ ဖိ ့ အတ ြ ႔ ု က ္အသံ း ု ျ ပဳ ၾ ကပါ တယ ္ ။ function ရဲ ႕ ပထ မ parameter မွ ာဖြ င္ မယ္ ့ ဖိ ႔ င္ ု ရဲ ႕ အမည ္ ပါ ၀င္မွ ာျ ဖစ္ ျ ပီ း .။ <?php 37 Youth Dreams 37 . ဒု တိ ယ parameter မွ ာေတာ႔ဘ ယ္လိ ပံ ု စံမ် ု ိ ဳ း နဲ ႔ဖိ ု င္ ကိ ဖြ ု င္ ခိ ့ င္ ု း မယ ္ ဆိ တာ ု သတ ္ မွ တ္ ေပး ရမွ ာျ ဖစ္ ပါ တယ ္ ။ <html> <body> <?php $file=fopen("welcome.txt ဆ ိ တဲ ု ႔file က သ ူ ရဲ ႔ ႕directory မွ ာရွ ိ မေနဘ ူ း ဆိ ရင္ fopen() function ု အလု ပ္ မလု ပ္ ပဲ နဲ ႔ Unable to Open File ! ဆိ တဲ ု ႔ error message က ိ ု ျ ပေပး မွ ာျ ဖစ္ ပါ တယ ္ ။ <html> <body> <?php $file=fopen("welcome."r") or exit("Unable to open file!")."r"). ?> </body> </html> file က ိ ုဘ ယ္ လိ ပံ ု စံ ု မ် ဳ ိ း နဲ ႔ ဖြ င္ ခိ ့ င္ ု း မယ ္ ဆိ တဲ ု ႔ ဒု တိ ယ parameter မွ ာေရြ း ရတ ဲ ႔ mode ေပါ င္ း မ် ာ း စြ ာ ရွ ပါ ိ တယ္ ။ အခု က် ေနာ္ သံ း ု လိ က္ ု တဲ ႔ r က ေတာ႔ read only က ိ ဆိ ု လိ ု တ ာပါ ု ။ ေအာက ္ က ဥပမာ မွ ာ အက ယ ္ ၍ welcome. ?> </body> </html> Closing a File fcolse() function က ေတာ႔ ဖြ င္ ထ ား ့ တဲ ႔ ဖိ င္ ု ကိ ု ပိ တ္ ဖိ အတ ြ ႔ ု က္ သံ း ု တ ာပဲ ေပါ ႔ .txt".

"r") or exit("Unable to open file!"). } fclose($file). ?> 38 Youth Dreams 38 .txt ဖိ င္ ု ထဲ က စာေတ ြ အ ကု န္ လံ း ု ေပၚ မွ ာျ ဖစ္ ပါ တယ ္ ။ Reading a File Character by Character fgetc() function က ိ ေတာ႔ ု ဖိ င္ ု တ စ္ ခု က character တစ္ လံ း ု ခ် င္ း စီ ကိ ု read လု ပ္ ဖိ သံ ႔ ု း ု ပါ တယ ္ ။ေအာက္ က ဥပမာ ေလ း က ဖိ င္ ု ရဲ ႕ အဆံ း ု ကု ိ ေရာက္ သြ ာ း တဲ အ ထိ ႔ character တ စ္ လံ း ု ခ် င္ း စီ ကိ ု read လ ု ပ္ သြ ား တာပဲ ျ ဖစ္ ပါ တ ယ္ ။ <?php $file=fopen("welcome. ?> Checking End-of-File feof() function ကိ သံ ု း ု ျ ပီ း ေတ ာ႔ဖိ င္ ု ရဲ ႕ အဆံ း (End of File) ေရာ ု က္ ျ ပီ လာ း ဆိ တ ာကိ ု ုစစ္ ႏိ င္ ု ပါ တ ယ္ ။ ဒီfunction က ဘယ ္ ေလ ာက္ data length ရွ တ ယ္ ိ ဆိ တ ာကိ ု မသ ိ ု တဲ ႔ looping ေတြ အတ ြ က္ အသ ံ း ု ၀င္ ပါ တယ ္ ။ if (feof($file)) echo “End of file”. while (!feof($file)) { echo fgetc($file).PHP Guide Book Moe Myint Shein $file = fopen("welcome2."r") or exit("Unable to open file!"). ?> ဒီ ဟာ ကိ ုrun လ ိ က္ ု တဲ အ ခါ ႔ … welcome. //some code to be executed fclose($file). //Output a line of the file until the end is reached while(!feof($file)) { echo fgets($file). "<br />". Reading a File Line by Line fgets() function ကိ သံ ု း ု ျ ပီ း ေတ ာ ႔ဖိ င္ ု တ စ္ ခုက တ စ္ ေၾ ကာ င္ း ျ ခင္ း ကိ ုread လ ု ပ္ ဖိ သံ ႔ ု း ု ပါ တယ ္ ။ ေအာက ္ က ဥပမာမွ ာ တစ္ ေၾ ကာ င္ း ျ ပီ း တ စ္ ေၾ ကာင္ းဖိ င္ ု ရဲ ႕ အဆ ံ း ု ကိ မေရာက ္ ု မခ် င္ းread လု ပ္ သြ ာ း တာ ျ ဖစ္ ပါ တယ ္ ။ အကယ ္ ၍ fopen() function က file ကိ မဖြ ု င္ ႏိ ့ င္ ု ဘူ း ဆိ ရင္ ု false(0) က ိ ု return ျ ပန္ မွ ာျ ဖစ္ ပါ တ ယ္ ။ <?php $file = fopen("welcome.txt ထ ဲ က စာေတြတ စ္ ေၾ ကာင္ း ျ ပီ း တစ္ ေၾ က ာင္ း း ကိ ုread သ ြ ား ျ ပီ း ေတ ာ ႔echo နဲ ႔ ျ ပထား တာျ ဖစ္ တဲ အ တြ ႔ က္ browser မွ ာwelcome."r").txt".txt". } fclose($file).txt".

ဒီform မွ ာက ် ေနာ တိ ္ ႔submit button က ိ ု ႏွ ု ပ္ ိ လိ က္ ု မယ္ ဆိ ရင္upload_file. " Kb<br />". "<br />". echo "Type: " . echo "Size: " .php ဖိ င္ ု ေလ း ကိ ေအာက္ ု ပါ အတ ိ င္ ု း ေရး ျ ပီ း သိ မ္ း လိ က္ ု ပါ မယ ္ ။ <?php if ($_FILES["file"]["error"] > 0) { echo "Error: " .PHP Guide Book Moe Myint Shein PHP File Upload အခု က် ေနာ္ တိ ႔ ု PHP ကိ သံ ု း ု ျ ပီ း ေတ ာ ႔ server ေပၚ ကိ ု file ေတြ upload တ င္ တ ာကိ ၾ ု ကည ့ ပါ ္ မယ ္ ။ user ေတ ြ အ ေနနဲ ႔ ဖိ င္ ု ေတြ ကိ ု upload တ င္ ႏိ င္ ု ဖိ အတ ြ ႔ ု က္ form ကိ ု သံ း ု မယ္ ဆိ ရင္ ု အဆင္ ေျ ပပါ တယ ္ ။ေအာက္ က HTML code ကိ ု ဖိ င္ ု ေတြ upload တ င္ တဲ ေနရာမွ ႔ ာ သံ း ု ႏိ င္ ု ပါ တယ ္ ။ <html> <body> <form action="upload_file. "<br />".php" method="post" enctype="multipart/form-data"> <label for="file">Filename:</label> <input type="file" name="file" id="file"/> <br/> <input type="submit" name="submit" value="Submit" /> </form> သူ ကိ ႔ ု run လိ က္ ု မယ္ ဆိ ရင္ ု browser မွ ာေအာက ္ က အတ ိ င္ ု းbrowse လ ု ပ္ ဖိ ရယ ္ ႔ ု submit လု ပ္ ဖိ ရယ္ ႔ ု အတြ က္ upload တင္ တဲ ႔ ပံ စံ ု ေလ း ကိ ရပါ ု ျ ပီ ။ . $_FILES["file"]["type"] . "<br />". $_FILES["file"]["error"] . ($_FILES["file"]["size"] / 1024) .php ဆိ ု တာ ု ေလ း ကိ ုrun မွ ာျ ဖစ္ ပါ တယ္ ။ upload_file. $_FILES["file"]["name"] . } else { echo "Upload: " .. 39 Youth Dreams 39 .

echo "Size: " . type.PHP Guide Book Moe Myint Shein echo "Stored in: " . echo "Type: " . } } else { 40 Youth Dreams 40 .upload တ င္ လိ က္ ု တဲ ႔ ဖိ င္ ု ရဲ ႕size (bytes နဲ ျ ႔ ပေပး ပါ တယ ္ )၊ - $_FILES[“file”][“error”]. } else { echo "Upload: " .upload တင္ လိ က္ ု တဲ ႔ ဖိ င္ ု ရဲ ႕ အမ် ဳ ိ း အစာ း ၊ - $_FILES[“file”][“size”]. "<br />". $_FILES["file"]["type"] . " Kb<br />". echo "Stored in: " . error စသ ည္ ျ ဖင္ ့ တစ္ ခု ခု ျ ဖစ္ ႏိ င္ ု ပါ တ ယ္ ။ - $_FILES[“file”][“name].server မွ ာ သိ မ္ း မယ ္ ႔ ဖိ င္ ု ရဲ ႕ယာယီ ေက ာ ္ ပီ ရဲ ႕ နာမည္ ၊ အခု ဒီ ပံ စံ ု က ဖိ င္ ု ကိ ုphp နဲ အ ရိ ႔ း ု ရွ င္ း ဆံ းupload တင္ ု တဲ ႔ ပံ ု စံ ပဲ ျ ဖစ္ ပါ တယ ္ ။ security အတ ြ က ္user ေတ ြ ကိ ုဖိ င္upload ု တင္ ခြ င္ ေပး ့ တဲ အ ခါ ႔ မွ ာကန္ သ န္ ႔ ခ် ႔ က္ ေတ ြ ထား ရွ သ င္ ိ ပါ ့ တယ ္ ။ Restrictions on Upload အခု ေအာက္က script ထ ဲ မွ ာ ဖိ င္ ု upload လု ပ္ တဲ ေနရာမွ ႔ ာက န္ သတ ္ ႔ ခ် က္ အ ခ် ဳ ိ ႕ ထ ည္ ေပး ့ မွ ာျ ဖစ္ ပါ တယ ္ ။user အေနနဲ ႔gif ဒါ မွ မဟ ု တ ္ jpeg ဖိ င္ ု ေတြ ကိ ပဲ upload ု ခြ င္ ေပး ့ ပါ မယ ္ ။ ဖိ င္ ု အ ရြ ယ္ အ စား ကိ လ ည္ ု း 20 kb ထက ္ မၾ ကီ း ေစရဘူ း လိ ႔ ု ကန္ သတ ္ ႔ ပါ မယ ္ ။ <?php if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/pjpeg")) && ($_FILES["file"]["size"] < 20000)) { if ($_FILES["file"]["error"] > 0) { echo "Error: " .. } ?> PHP $_FILES array က ိ သံ ု း ု ျ ပီ း ေတာ႔ remote server ဆ ီ ကိ ု client computer ကေနဖိ င္ ု ေတြ တင္ တ ာပဲ ျ ဖစ္ ပါ တယ ္ ။ပထမဆ ံ း ု parameter က ေတာ႔ ေဖာင္ ရဲ ႕input name ျ ဖစ္ ပါ တ ယ္ . "<br />". tmp_name. $_FILES["file"]["name"] . ($_FILES["file"]["size"] / 1024) . $_FILES["file"]["tmp_name"]. $_FILES["file"]["tmp_name"].upload တ င္ လိ က္ ု တဲ ႔ ဖိ င္ ု ရဲ ႕ အမည္ ၊ - $_FILES[“file”][“type”]. ဒု တိ ယ index အေနနဲ ႕ က ေတ ာ႔ name. $_FILES["file"]["error"] . "<br />". size.ဖိ င္ ု upload လ ု ပ္ ရက ေနျ ဖစ္ လာ ႏိ င္ ု တဲ ႔ error code၊စသည ္ ျ ဖင္ ျ ့ ဖစ္ ပါ တယ ္ ။ - $_FILES[“file”][“tmp_name”].

"<br />". $_FILES["file"]["name"]). "<br />".PHP Guide Book Moe Myint Shein echo "Invalid file". $_FILES["file"]["tmp_name"] . echo "Stored in: " . $_FILES["file"]["name"])) { echo $_FILES["file"]["name"] . } ?> Saving the uploaded File အေပၚ က ဥပမာက server မွ ာရွ တဲ ိ ႔PHP temp folder ထ ဲ မွ ာပဲupload တ င္ လိ က္ ု တဲ ႔ဖိ ု င္ ရဲ ႕ ယာယ ီေကာ္ ပီ ကိ ပဲ ု ဖန္ တီ း ေပး တာ ျ ဖစ္ ပါ တယ ္ ။php script ဆံ း ု သြ ာ း တာနဲ ႔ အဲ ဒီ ေက ာ္ ပီ က လည ္ းေပ် ာ က္ သြ ား မွ ာ ျ ဖစ္ ပါ တယ ္ ။upload လု ပ္ လိ က္ ု တဲ ႔ ဖိ င္ ု ကိ ု store လု ပ္ ဖိ အ တြ ႔ ု က္ location တ စ္ ခု ကိ ု ကူ း ယူ ေပး ဖိ လိ ႔ ု အ ပ္ ု ပါ တယ ္ ။ <?php if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/pjpeg")) && ($_FILES["file"]["size"] < 20000)) { if ($_FILES["file"]["error"] > 0) { echo "Return Code: " . ($_FILES["file"]["size"] / 1024) . "<br />". echo "Type: " . "upload/" . ". } else { move_uploaded_file($_FILES["file"]["tmp_name"]. echo "Temp file: " . " Kb<br />". $_FILES["file"]["error"] . if (file_exists("upload/" . echo "Size: " . } else { echo "Upload: " . $_FILES["file"]["name"]. $_FILES["file"]["name"] . $_FILES["file"]["type"] . " already exists. "upload/" . } } } else { 41 Youth Dreams 41 . "<br />".

expire. 42 Youth Dreams 42 .path. time()+3600)..php ကိ ႔ ုrun လိ ရပါ ႔ ု ျ ပီ ။ php directory (C:\xampp\htdocs\php)ေအာက္ မွ ာupload ဆိ တဲ ု ႔ folder ေလ း ကိ ုေဆ ာက္ ေပး လိ က္ ု ပါ .. ဒါ ကေတ ာ ႔ cookie ကိ ု set လ ု ပ္ တဲ ႔ syntax ျ ဖစ္ ပါ တယ ္ ။ Example ေအာက ္ က ဥပမာေလး မွ ာက ် ေနာ တိ ္ ႔user ဆ ိ ု တဲ ု ႔cookie ေလ း တ စ္ ခု ကိ ုဖန္ တီ း ပါ တယ ္ ။Alex Porter ဆိ တဲ ု ႔တ န္ ဖိ း ု ကိ ု ေပး ပါ တ ယ္ ။တစ္ နာရီ ၾ ကာ တဲ အ ခါ ႔ expire ျ ဖစ္ ဖိ ကိ ႔ ု ု သက ္ မွ တ္ ေပး ပါ တ ယ္ ။ <?php setcookie("user".. setcookie("user". "Alex Porter".. အဲ ဒီ ေနာက္upload တင္ မယ္ ဆိ ရင္ ု ေတာ႔upload ဆ ိ တဲ ု ႔folder ေအာ က္ ထဲ ကိ ုကိ ယ္ ု တ င္ လိ က္ ု တဲ ႔file ေလး ေရာ က္ ေနမွ ာ ျ ဖစ္ ပါ တယ ္ ။အခု က က် ေနာ္ တိ က ကိ ႔ ု ယ္ ု ရဲ ႔ ႕local စက္ ထဲ မွ ာပဲ စမ္ း ေနတ ာျ ဖစ္ ပါ တ ယ္ ။web hosting ေပၚ မွ ာစမ္ း ရင္ လ ည္ းသေဘ ာ တ ရာ း က ေတာ႔ အတူ တူ ပဲ ျ ဖစ္ ပါ တ ယ္ ။ PHP Cookies cookie က ိ ု user တ စ္ ေယာက္ ရဲ ႕identity အတ ြ က္ အသံ း ု ျ ပဳ ပါ တယ ္ ။cookie ဆိ တ ာuser ရဲ ု ႕ကြ န္ ပ် ဴ တာ ေပၚ မွ ာဆာဗာ က ေန ခ် န္ ထ ား ခဲ တဲ ႔ ႔ ဖိ င္ ု ေလ း တ စ္ ခု ပဲ ျ ဖစ္ ပါ တ ယ္ ။browser တစ္ ခု ကိ သံ ု း ု ျ ပီ းတူ ညီ တဲ ႔ကြ န္ ပ် ဴ တာ တ စ္ လံ း ု ကေန web page တစ္ ခု ကိ ု request လု ပ္ လိ က္ ု တဲ အ ခါ ႔ တိ င္ ု း မွ ာ cookie ကိ ပု ု ေပး ႔ ိ ပါ တ ယ္ ။ PHP ကိ သံ ု း ု ျ ပီ း ေတ ာ ႔ cookie ဖန္ တီ း ပံ ု ရယ ူ ပံ ေတြ ု ကိ ေလ႔ ု လ ာၾ က ပါ မယ္ ။ How to Create a Cookie? cookie တ စ္ ခု ကိ ုဖန္ တီ း ဖိ အ တြ ႔ ု က setcookie() function ကိ သံ ု း ု ပါ တယ ္ ။ setcookie() function က ိ ု<html> tag ရဲ ႕ အေရွ ႕ မွ ာေရး ရမွ ာ ျ ဖစ္ ပါ တ ယ္ ။ setcookie (name.e()+60*60*24*30.. $expire). ?> <html> .. cookie ရဲ ႕expire time ကိ ု ေနာက္ ထ ပ္ နည္ း တစ္ မ် ဳ ိ း နဲ အ ခု ႔ လိ သက ္ ု မွ တ္ ႏိ င္ ု ပါ တယ္ ။စကၠ န္ ကိ ႔ သံ ု း ု တာ ထ က္ ပိ လြ ု ယ္ ပါ တယ ္ ။ <?php $expire=to. "Alex Porter".domain).php ဖိ င္ ု ေလ း ကိ ုအထ က္ ပါcode အတ ိ င္ ု းေရး ျ ပီ း သိ မ္ း လိ က္ ု တဲ အ ခါupload..value. ဒီဥပမာ မွ ာဆိ ရင္expire time ကိ ု ုတ စ္ လ အျ ဖစ္ သ တ္ မွ တ္ ထ ား ခဲ တ ာျ ႔ ဖစ္ ပါ တ ယ္ ။(60 sec * 60 min * 24 hours * 30 days).PHP Guide Book Moe Myint Shein echo "Invalid file". } ?> upload_file. ?> <html> ..

?> </body> </html> Cookie တစ္ ခု ကိ ု ဖ် က္ ပစ္ ျ ခင္ း cookie တစ္ ခု ကိ ဖ် ု က္ ပစ္ တဲ အ ခါ ႔ မွ ာexpiration date က အတိ တ္ မွ ာ က် န္ ခဲ တာ ႔ ေသ ခ် ာေစဖိ သ င္ ႔ ု ပါ ့ တ ယ္ ။ ဥပမာ <?php //set the expiration date to one hour ago setcookie("user". time()-3600).PHP Guide Book Moe Myint Shein Cookie တန္ ဖိ း ု တ စ္ ခု ကိ ု Retrieve လု ပ္ ျ ခင္ း <?php //Print a cookie echo $_COOKIE["user"]. ?> ဒီ ဥပမာမွ ာuser ဆိ တဲ ု ႔ cookie ေလ း ရဲ ႕ တ န္ ဖိ း ု ကိ ု ရယူ ျ ပီ း ေတာ႔ ျ ပန္ ျ ပေပး ပါ တယ ္ ။ ေအာက ္ က ဥပမာ မွ ာေတာ႔ isset() function ကိ သံ ု း ု ျ ပီ း cookie တ စ္ ခု ဟ ာ တန္ ဖိ း ု သတ ္ မွ တ္ လိ က္ ု ျ ခင္ း ရွ မရွ ိ ကိ ိ ု စစ္ ေဆ း မွ ာျ ဖစ္ ပါ တယ ္ ။ <html> <body> <?php if (isset($_COOKIE["user"])) echo "Welcome" . // A way to view all cookies print_r($_COOKIE).php" method="post"> Name: <input type="text" name="name"/> 43 Youth Dreams 43 . else echo "Welcome guest!<br />".php ဆီ ႔ ကိ ု user input ေတြ ကု လွ ိ မ္ း ပိ ေပး ႔ ု တ ာျ ဖစ္ ပါ တ ယ္ ။ <html> <body> <form action="welcome. ?> Browser တစ္ ခု က Cookie က ိ ု support မလ ု ပ္ တဲ အ ခါအျ ႔ ခားနည္ း လမ္ း ေတြ ကိ အ သံ ု း ု ျ ပဳ ျ ပီ းစာမ် က္ ႏွ ာတ စ္ ခု က ေနတစ္ ခု ကိ ု အခ် က္ အ လ က္ ေတ ြ ကိ ုပိ ေပး ႔ ု ဖိ လု ႔ ု ပ္ ရပါ တယ ္ ။နည္ း လမ္ း တစ္ ခု က ေတာ႔form က ိ အ သံ ု း ု ျ ပဳ ျ ခင္ း ျ ဖစ္ ပါ တယ ္ ။ေအာက ္ က ဥပမာ ေလ း မွ ာSubmit button က ိ ု user က ႏွ ပ္ ိ လိ က္ ု တဲ အ ခါwelcome. $_COOKIE["user"] . "!<br/>". "".

You are 20 years old.. ?> years old.php ဖိ င္ ု ထဲ မွ ာ ေအာက္ ပါ အတိ င္ ု းတန္ ဖိ း ု ေတြ ကိ ု retrieve လု ပ္ ယူ ရမွ ာျ ဖစ္ ပါ တယ္ ။ <html> <body> Welcome <?php echo $_POST["name"]. ျ ပီ း ရင္ ပိ တ္ လိ က္ ု တ ယ္ ။ . ?>. ဘာလိ လ ည္ ႔ ု း ဆိ ေတ ာ ု ႔HTTP အေနနဲ ႔state က ိ ု maintain မလ ု ပ္ ေပး ပါ ဘူ း ။ ဒီ ျ ပသ နာကိ ုPHP session ကိ သံ ု း ု ျ ပီ း ေတ ာ ႔ေျ ဖရွ င္ း ပါ တ ယ္ ။သူ ႕ ကိ ုသံ း ု ျ ပီ း ေတာ႔ေနာ င္ အ ခါ မွ ာျ ပန္ လ ည္ အသ ံ း ု ျ ပဳ တဲ အ ခါ ႔ remember ျ ဖစ္ ေနေစဖိ အ တြ ႔ ု က ္user ရဲ ႕ ႔အခ် က္ အ လက ္ ေတြ ကိ ုserver ေပၚ မွ ာသ ိ မ္ း ဆ ည္ း ထား ႏိ င္ ု ပါ တယ ္ ။ ဒါ ေပမယ ္ ႔ session information ပ် က္ သြ ား မွ ာျ ဖစ္ ပါ တ ယ္ ။ ေတ ြ က ယာယ ီ ပဲ ျ ဖစ္ ပါ တယ ္ ။ user အကယ ္ ၍ က website အျ မဲ တ မ္ း ရွ ေနေစခ် ိ င္ တယ္ ဆိ ရင္ ု ေတာ႔ က ေနျ ပန္ လ ည္ ထြ က္ ခြ ာသြ ား တာနဲ ႔ database ထဲ မွ ာ data ေတ ြ ကိ ု သိ မ္ း ရမွ ာျ ဖစ္ ပါ တယ ္ ။session အေနနဲ ႔ unique id( UID) တ စ္ ခု ကိ ု visitor တစ္ ဦ း စီ တိ င္ ု း အတြ က္ ဖန္ တီ း ေပး ပါ တ ယ္ ။ ျ ပီ း တဲ အ ခါ ဒီ UID ႔ ေပၚ မွ ာအေျ ခခံ ျ ပီ း ေတ ာ႔ variable ေတြ ကိ သိ ု မ္ း ဆည ္ း ပါ တယ ္ ။ UID ကိ ေတ ာ႔ cookie ု တစ္ ခု ထဲ မွ ာေသာ္ လ ည္ း ေကာင္ းURL ထဲ မွ ာpropagated လု ပ္ ျ ပီ း ေသ ာ လ ည္ ္ း ေကာင္ းသိ မ္ း ဆည ္ း ပါ တယ ္ ။ Starting a PHP Session 44 Youth Dreams 44 . ဒါ ဟာ session ပါ ပဲ ။computer က က် ေနာ္ တိ ဘယ ္ ႔ ု သူ ဆိ တ ာက ိ ု သိ ု တ ယ္ ။ က် ေနာ တိ ္ ႔ ဘယ ္ ု အ ခ် န္ ိ မွ ာ ဒါ ကိ ု စဖြ င္ ျ ့ ပီ း ေတာ႔ ဘယ ္ အ ခ် န္ ိ မွ ာ ပိ တ္ လိ က္ ု တ ယ္ ဆိ တ ာကိ ု ု သူ က သိ ပါ တယ ္ ။အင္ တ ာနတ ္ ေပၚ မွ ာဆိ ရင္ ု ေတ ာ ႔ ျ ပသနာတစ္ ခု ရွ လ ာပါ ိ တယ ္ ။web server က ေတ ာ႔ က် ေနာ္ တိ ႔ဘ ယ္ ု သူ ဆိ တာဘာ ု ေတ ြ လု ပ္ တ ယ္ ဆိ တ ာက ိ ု ုမသ ိ ႏိ င္ ု ပါ ဘူ း . PHP Sessions PHP session variable တ စ္ ခု ကိ ုuser session တစ္ ခု အတ ြ က ္အခ် က္ အ လက ္ ေတြ ကိ သိ ု မ္ း ဆ ည္ း ဖိ ႔ေသ ာ ု လ ည္ ္ း ေကာင္ း ဆက ္ တ င္ ေတ ြ ကိ ု ေျ ပာင္ း လဲ ဖိ ရန္ ႔ ု ေသ ာ္ လည ္ း ေက ာင္ း အသံ း ု ျ ပဳ ရပါ တယ ္ ။ user တ စ္ ေယာက္ ရဲ ႕ အခ် က္ အ လက ္ ေတြ ကိ ု ကိ င္ ု တြ ယ္ ျ ပီ း ေတာ႔application တစ္ ခု ရဲ ႕စာ မ် က္ ႏွ ာေတြ အ ား လံ း ု မ် ာျ ပန္ သံ း ု ႏိ င္ ု ပါ တယ ္ ။application တ စ္ ခု ကိ သံ ု း ု တဲ အ ခါ ႔ မွ ာ က် ေနာ္ တိ က အဲ ႔ ု ဒါ ကိ ဖြ ု င္ တ ယ္အေျ ့ ပာင္ း အလ ဲ အ ခ် ဳ ိ ႕ ကိ လု ု ပ္ တ ယ္ . </body> </html> အထက ္ ပါ ဥပမာ မွ ာ forum1.PHP Guide Book Moe Myint Shein Age : <input type="text" name ="age"/> <input type="submit"/> </form> </body> </html> အထက ္ ပါ code ေတ ြ ကိ ု form1.php က ိ ုBrowser မွ ာ run လိ က္ ု တဲ အ ခါအမည္ ႔ နဲ ႔အသ က္ ကိ ျ ု ဖည ္ ဖိ ့ ႔text box ႏွ ု စ္ ခု ရွ မွ ိ ာ ျ ဖစ္ ပါ တ ယ္ ။ျ ဖည္ ျ ့ ပီ း ေတာ႔ submit က ိ ႏွ ု ိ ပ္ လိ က္ ု ရင္ ေအာက္ ပါ အတိ င္ ု းျ ဖည ္ လိ ့ က္ ု တဲ အ ေပၚ ႔ မွ ာမူ တ ည္ ျ ပီ းျ ပန္ ျ ပေပး ပါ လိ မ္ မယ္ ႔ ။ က် ေနာ္ က ေတ ာ ႔ အမည ္ မွ ာmoemyintshein အသက ္ မွ ာ20 ကိ ထ ည္ ု ျ ့ ပီ းsubmit လ ု ပ္ လိ က္ ု တဲ အ ခါ ႔ … Welcome moemyintshein.php လိ ႔ ု save လိ က္ ု တယ ္ ဆိ ု ပါ စိ ။ ႔ ု welcome. <br /> You are <?php echo $_POST["age"]..

PHP Guide Book Moe Myint Shein PHP session တ စ္ ခု ထဲ မွ ာuser information ေတ ြ ကိ မသ ိ ု မ္ း ခင္ အရင္ session တ စ္ ခု ကိ အ စျ ု ပဳ ေပး ရပါ မယ ္ ။ session_start() function ကိ ု <html> tag မလ ာ ခင္ မွ ာေရး ရပါ တယ္ ။ <?php session_start(). $_SESSION['views']. if(isset($_SESSION['views'])) $_SESSION['views']=$_SESSION['views']+1. 45 Youth Dreams 45 . ?> <html> <body> <?php //retrieve session data echo "Pageviews=" .။ သတ ္ မွ တ္ ထ ား ျ ပီ း သာ း ဆိ ရင္counter က ိ ု ု တစ္ တိ း ု ပါ မယ ္ ။မဖန္ တီ း ရေသ း ဘူ း ဆိ ရင္ ု ေတာ႔ views variable က ိ ု ဖန္ တီ း ျ ပီ း ေတာ႔ တ န္ ဖိ း ု ကိ ု တစ္ လိ ႔ ု သတ ္ မွ တ္ ေပး ပါ မယ္ ။ <?php session_start(). ?> <html> <body> </body> </html> အခု လိ အ တိ ု င္ ု း ေရး ေပး လိ က္ ု ခဲ မယ္ ႔ ဆိ ရင္ ု server ေပၚ မွ ာuser session ကိ ုregister လ ု ပ္ လိ က္ ု ျ ပီ း ေတ ာ႔ user Information ေတ ြ စတ င္ သိ မ္ း မွ ာျ ဖစ္ ပါ တယ ္ ။ဒါ အျ ႔ ပင္ user session အတြ က္ UID တစ္ ခု ကိ ု လည္ းassign လ ု ပ္ ေပး ပါ တ ယ္ ။ Storing a Session Variable session variable ေတ ြ ကိ ု သိ မ္ း ဖိ ႔ ု ထု တ္ ယူ ဖိ အ တြ ႔ ု က္ သံ း ု ရတ ာ က ေတာ႔ PHP $_SESSION variable ပဲ ျ ဖစ္ ပါ တယ ္ ။ <?php session_start(). ?> </body> </html> output အေနနဲ ႔ Pageviews=1 ဆိ ျ ု ပီ း ရမွ ာျ ဖစ္ ပါ တ ယ္ ။ အခု ထ ပ္ ျ ပမယ ္ ႔ဥပမာမွ ာေတာ႔ရိ း ု ရွ င္ း တဲ ႔ page view counter တစ္ ခု ကိ ု ဖန္ တီ း မွ ာ ျ ဖစ္ ပါ တယ ္ ။ isset() function ကိ သံ ု း ု ျ ပီ း ေတ ာ ႔views ဆ ိ တဲ ု ႔variable က ိ ုသတ ္ မွ တ္ ထ ား မထ ာ း စစ္ ပါ မယ ္ . //store session data $_SESSION['views']=1.. else $_SESSION['views']=1.

$_SESSION['views']. ?> session_destroy()function ကိ ု ေခၚ ျ ပီ း ေတာ႔ session က ိ လံ ု း ု ၀ဖ် က္ ဆီ း လိ လ ည္ ႔ ု း ရပါ တ ယ္ <?php session_destroy().headers.subject.PHP Guide Book Moe Myint Shein echo "Views=". message သံ း ု ခု က ေတ ာ ႔မျ ဖစ္ မေနထ ည္ ေပး ့ ရမွ ာ ျ ဖစ္ ျ ပီ းheaders နဲ ႔parameters ေတ ြ က ေတ ာ႔Optional ပဲ ျ ဖစ္ ပါ တ ယ္ ။ PHP Simple E-Mail 46 Youth Dreams 46 .parameters) ေအာက ္ က ေတ ာ ႔ သူ မွ ႔ ာ ထ ည္ လိ ့ ရတဲ ႔ ု ႔ parameter ေတြ နဲ ႔ သူ တိ ရဲ ႔ ု ႕ ေဖာ္ ျ ပခ် က္ ေတြ ျ ဖစ္ ပါ တယ ္ ။ to.message. subject. relode လ ု ပ္ လု က္ ိ တဲ အ ခါ ႔ တိ င္ ု း မွ ာviews က တစ္ တိ း ု တိ း ု သြ ား တ ာေတ ြ မွ ႔ ာျ ဖစ္ ပါ တ ယ္ ။ Destroying a Session session data ကိ ျ ု ပန္ ဖ် က္ မယ ္ ဆိ ရင္ ု ေတ ာ ႔ unset() function ဒါ မွ မဟု တ ္ sessopm_destroy() function ကိ အသ ံ ု း ု ျ ပဳ ႏိ င္ ု ပါ တယ ္ ။unset() function က ိ ေတာ႔ေဖာ္ ု ျ ပထ ာ း တဲ ႔session variable ကိ ုfree လု ပ္ ပစ္ ဖိ အ တြ ႔ ု က္ အ သံ း ု ျ ပဳ ပါ တယ ္ ။ <?php unset($_SESSION['views']). ?> ဒါ ကိ ု run ၾ က ည္ မယ္ ့ ဆိ ရင္ ု …. ?> PHP Mail Function PHP script ေရး ျ ပီ းအီ း ေမး ေတြ ကိ ု တိ က္ ု ရိ က္ ု ပိ လိ ႔ ု ရပါ ႔ ု တယ ္ ။ PHP ရဲ ႕mail() function ကိ အသ ံ ု း ု ျ ပဳ ရမွ ာ ျ ဖစ္ ပါ တယ ္ ။ Syntax mail(to.

} else //if "email" is not filled out.$message. send email { //send email $email = $_REQUEST['email'] . display the form { echo "<form method='post' action='mailform. $from= "gtalk@moemyintshein". $message.".com". $from. mail( "someone@example. echo "Mail Sent. "From: $email" ). ?> PHP Mail Form PHP ကု သံ ိ း ု ျ ပီ း ေတ ာ႔ က် ေနာ္ တိ ႔ ု ရဲ ႕website ေတြ ေပၚ မွ ာfeedback-form လိ မ် ု ဳ ိ း ဖန္ တီ း ႏိ င္ ု ပါ တယ ္ ။ေအာ က္ က ဥပမာမွ ာform ကိ သံ ု း ု ျ ပီ းအီ း ေမး ပိ တာ ႔ ု ကိ ျ ု ပထ ာ း တာ ျ ဖစ္ ပါ တယ ္ ။ <html> <body> <?php if (isset($_REQUEST['email'])) //if "email" is filled out.PHP Guide Book Moe Myint Shein PHP နဲ အီ ႔ း ေမး ပိ မယ္ ႔ ု ဆိ ရင္ ု အရွ င္ း ဆံ း ု နဲ ႔ အလ ြ ယ္ ဆံ း ု က ေတာ႔ text စာ သာ း ေတ ြ ကိ ု ပိ တာ ႔ ု ပဲ ျ ဖစ္ ပါ တယ ္ ။ ေအာက ္ က ဥပမာေလး မွ ာအရင္ ဆံ း ု $to. $message = $_REQUEST['message'] . mail($to. $headers စတ ဲ ႔ variable ေတြ ကိ ေၾ ု ကျ ငာျ ပီ း ေတ ာ႔ mail() function ထ ဲ မွ ာအီ း ေမး တစ္ ခု ကိ ပိ ု ဖိ ႔ ု အတ ြ ႔ ု က္ ေခၚ သံ း ု တ ာျ ဖစ္ ပါ တယ ္ ။ <?php $to= "mail@moemyintshein.$headers).com". echo "Thank you for using our mail form". "Subject: $subject".$subject. $headers="From: $from". $message="Hello! This is a simple email message. $message.php'> Email: <input name='email' type='text' /><br /> Subject: <input name='subject' type='text' /><br /> Message:<br /> 47 Youth Dreams 47 . $subject = $_REQUEST['subject'] . $subject="Test mail".". $subject.

အေသး စိ တ္ ကိ ု ကု ယ္ ိ တိ င္ ု ဆက ္ ေလ႔ လာ သ င္ ပါ ့ တ ယ္ ။ အထက ္ မွ ာေဖာ္ ျ ပခဲ တ ာေတ ြ ႔ က ေတ ာ ႔အရွ င္ း ဆံ း အီ ု း ေမး ပိ တဲ ႔ ု ပံ စံ ု ပဲ ျ ဖစ္ ပါ တ ယ္ဒါ ေပမယ ္ ႔တက ယ္ တ မ္ း ေတ ာ ႔လ က္ ေတ ြ ႔ လု ပ္ ရတဲ အ ခါ အခု ႔ အ တိ ု င္ း ေရး လိ မျ ႔ ု ဖစ္ ပါ ဘူ း . } ?> </body> </html> code ေတ ြ ကိ ု save လ ု ပ္ တဲ အ ခါmailform.. လ ု ပ္ ရမွ ာ ျ ဖစ္ ပါ တယ ္ ။ အခု ေတာ႔အေျ ခခံ ျ ဖစ္ လိ ႔သေဘ ာ ု တ ရာ း ကိ ု နား လည ္ ရင္ ရပါ ျ ပီ ..php လ ိ ႔ ႔ ု save လု ပ္ လိ က္ ု ပါ တ ယ္ ။သူ ရဲ ႔ ႕ အလ ု ပ္ လု ပ္ ပံ က ေတ ာ႔ ု ပထမဆ ံ းemail ရဲ ု ႕ input field ကိ ျ ု ဖည ္ ထ ား ့ မထ ာ း စစ္ ပါ တ ယ္ ။ မျ ဖည ္ ထ ား ့ ေသ း ဘူ း ဆိ ရင္ ု ေတ ာ ႔ ဆိ လိ ု တ ာက ု ပထ မဆ ံ း ု အၾ ကိ မ္ ဒီ စာမ် က္ ႏွ ာ ကိ ေရာက္ ု လာ တ ာဆိ ရင္ ု ေတာ႔HTML form ေလး ကိ ျ ု ပေပး ပါ တယ ္ ။အက ယ ္ ၍ျ ဖည ္ ျ ့ ပီ း သားျ ဖစ္ ေနျ ပီ း ဆိ ရင္ ု ေတ ာ႔ form က ေနအီ း ေမး ကိ ု ပိ ေပး ႔ ု ပါ တယ ္ ။submit buttion ကိ ႏွ ု ပ္ ိ လိ က္ ု တာ နဲ ႔ ဒီ page ကိ ပဲ ု reload လု ပ္ ပါ တ ယ္ ။input field မွ ာ ျ ဖည္ ထာ ့ း ျ ပီ း ျ ဖစ္ တဲ အ တြ ႔ က ္ အီ း ေမး ကိ ပိ ု ေပး ႔ ု ပါ တ ယ္ ။ အီ း ေမး ပိ တ ာေတြ ႔ ု ျ ဖစ္ တဲ အ တြ ႔ က ္ SMTP နဲ ႔ smtp_post စတ ဲ ႔ ဆက ္ တ င္ ေတ ြ ကိ ုphp. အဲ ဒါ က လံ ျ ု ခံ ဳ မႈ မရွ ပါ ိ ဘူ း …။ ေရွ ႕ အခန္ း မွ ာ က် ေနာ္ တိ ႔ ပိ ု ျ ု ပီ း security ေက ာင္ း ေအာင္ ေရး ၾ က ပါ မယ ္ ။ PHP Secure E-mails PHP E-mail Injections 48 Youth Dreams 48 .ini file မွ ာ သ တ္ မွ တ္ တ ာေတြ .PHP Guide Book Moe Myint Shein <textarea name='message' rows='15' cols='40'> </textarea><br /> <input type='submit' /> </form>"..

} } if (isset($_REQUEST['email'])) {//if "email" is filled out.com %0ABTo:person6@example. FILTER_SANITIZE_EMAIL).com.com%0ACc:person2@example.person3@example.com.PHP Guide Book Moe Myint Shein အထက ္ က အခန္ း မွ ာက ် ေနာ တိ ္ ေဖာ ႔ ု ျ ္ ပခဲ တဲ ႔ ႔ code ရဲ ႕ အား နည္ း ခ် က္ က ေတ ာ ႔unauthorized user ေတြ က input form ရဲ ႕mail header ထ ဲ မွ ာdata ေတြ ကိ ထည ္ ု သြ ့ င္ း ႏိ င္ ု ပါ တ ယ္ ။ဥပမာေအာက္ မွ ာျ ပထ ာ း သလ ိ မ် ု ဳ ိ းuser က form ရဲ ႕input fileld ထဲ မွ ာ ထည္ မယ ္ ့ ဆိ ရင္ ု အဲ ဒီ လိ ပ္ စာေတ ြ အက ု န္ လံ း ု ဆီ ကိ ု အီ း ေမး ေရာက္ မွ ာျ ဖစ္ ပါ တ ယ္ ။ someone@example. FILTER_VALIDATE_EMAIL)) { return TRUE. } 49 Youth Dreams 49 . //filter_var() validates the e-mail //address using FILTER_VALIDATE_EMAIL if(filter_var($field. } else { return FALSE. if ($mailcheck==FALSE) { echo "Invalid input".com %0ABcc:person3@example. anotherperson4@example. proceed //check if the email address is invalid $mailcheck = spamcheck($_REQUEST['email']).person5@example.com.com ေအာက ္ ပါ code က form ထ ဲ က email field က ိ စစ္ ု ေဆ း ဖိ အတ ြ ႔ ု က္ input က ိ ု validate လ ု ပ္ ဖိ ပါ ႔ ု ေရး ထာ း တာ ျ ဖစ္ ပါ တယ ္ ။ <html> <body> <?php function spamcheck($field) { //filter_var() sanitizes the e-mail //address using FILTER_SANITIZE_EMAIL $field=filter_var($field.

php'> Email: <input name='email' type='text' /><br /> Subject: <input name='subject' type='text' /><br /> Message:<br /> <textarea name='message' rows='15' cols='40'> </textarea><br /> <input type='submit' /> </form>". } } else {//if "email" is not filled out.PHP Guide Book Moe Myint Shein else {//send email $email = $_REQUEST['email'] . $message. display the form echo "<form method='post' action='mailform. mail("someone@example. $subject = $_REQUEST['subject'] . "From: $email" ).com". } ?> </body> </html> ဒီ code မွ ာက ် ေနာ္ တိ ႔ ု PHP Filter က ိ အသ ံ ု း ု ျ ပဳ ထာ း ပါ တ ယ္ ။input က ိ မွ ု န္ မမွ န္ စစ္ ေဆ း ဖိ ျ ႔ ု ဖစ္ ပါ တ ယ္ ။ - The FILTER_SANITIZE_EMAIL filter က string တစ္ ခု က illegal email character ေတ ြ အာ း လံ း ု ကိ ု ဖယ္ ရွ ား ေပး ပါ တ ယ္ ။ - The FILTER_VALIDATE_EMAIL ကေတ ာ ႔ email လိ ပ္ စာရဲ ႕ အရည္ အ ခ် င္ း … format ကိ က္ ု မကိ က္ ု ကိ ု စစ္ ေဆ း ေပး ပါ တ ယ္ ။PHP Filter အခန္ း မွ ာfilter အေၾ ကာ င္ း ပိ ေရး ု သြ ာ း ပါ မယ ္ ။ PHP Error Handling PHP ရဲ ႕default error handling ကေတ ာ ႔ရိ း ု ရိ း ု ေလး ပါ ပဲ ။ဖိ င္ ု ရဲ ႕ နာမည္လိ င္ ု း နံ ပါ တ္ ပါ တဲ ႔error message နဲ ႔ဘာ error ဆိ တ ာေျ ု ပာျ ပီ း ေတ ာ႔ browser က ိ ပိ ု ေပး ႔ ု လိ က္ ု တာ ပါ ပဲ ။web application ေတြ ေရး တဲ အ ခါerror handling ကအေရး ႔ ၾ ကီ း တဲ ႔ အပိ င္ ု း ပါ ပဲ ။က် ေနာ တိ ္ ေရး ႔ ု လိ က္ ု တဲ ႔ code မွ ာerror checking code မပါ ဘူ း ဆိ ရင္ ု က် ေနာ တိ ္ ရဲ ႔ ု ႕ပရိ ဂရမ္ ု က ပေရာ္ ဖက္ ရွ င္ နယ ္ မဆ န္ ပါ ဘူ းျ ပီ း ေတ ာ ႔security risk ေတ ြ လည ္ း ရွ လာ ိ ပါ မယ္ ။ ဒီအခန္ း မွ ာေတာ႔PHP ရဲ ႕ error စစ္ တဲ နည္ ႔ း လ ည္ း အခ် ဳ ိ ႕ ကိ ေရး ု ပါ မယ ္ ။ေအာ က္ ပါ နည ္ း လ မ္ းေတ ြ ပါ ၀င္ ပါ မယ ္ ။ - 50 Simple “die()” statements Youth Dreams 50 . "Subject: $subject". $message = $_REQUEST['message'] . echo "Thank you for using our mail form".

.txt".။error က ိ ျ ု ပျ ပီ း တာ နဲ ႔ က် န္ တဲ ႔ code ေတ ြ ကိ ဆ က္ ု မ run ေတ ာ တဲ ႔ ႔ရိ း ု ရွ င္ း တဲ ႔error handling တ စ္ ခု ကိ သံ ု း ု ခဲ တာ ႔ ပါ ။ဒါ ေပမယ္ ႔အျ မဲ တ မ္ း ဒီ ပံ ု စံ ၾ ကီ း ပဲ သံ း ု လိ ႔ ု ေတ ာ႔ မျ ဖစ္ ပါ ဘူ း . error_line. } ?> အခု လိ ေရး ု လိ က္ ု တဲ အ တြ ႔ က ္welcome.txt ဖိ င္ ု သာ ရွ မေနဘူ ိ း ဆိ ရင္File not found ဆိ ု တဲ ု ႔error message ပဲ ေပၚ မွ ာ ျ ဖစ္ ပါ တ ယ္ ။ပထ မ code ထ က္ စာရင္ ေတာ႔ အမ် ား ၾ ကီ း ပိ ု ပေရာ္ ဖက္ ရွ င္ နယ္ ဆ န္ သြ ား တယ ္ ေပါ ႔ ."r").. error context)။ Syntax error_function (error_level.. } else { #file=fopen("welcome.txt")) { die("File not found"). error_file. error_message. တ ျ ခားerror handling အတြ က္ php function တ စ္ ခ် ဳ ိ ႕ ကိ ဆက ္ ု ေလ ႔ လာ ၾ ကပါ မယ ္ ။ Creating a Custom Error Handler ဒါ ဟာလည ္ းရိ း ု ရွ င္ း ပါ တယ ္ ။error တ စ္ ခု ျ ဖစ္ တဲ အ ခါ ႔ မွ ာfunction တစ္ ခု ကိ ေခၚ ု ဖိ အတ ြ ႔ ု က္ လု ပ္ ေပး ရတ ာ ပါ ပဲ ။ ဒီfunction အေနနဲ ႔အနည္ း ဆံ း ု ေတာ႔parameters ႏွ စ္ ခု ( error level နဲ ႔error message) ကိ ကိ ု င္ ု တြ ယ္ ႏိ င္ ု ရပါ မယ ္ ။ ဒါ ေပမယ ္ ႔ သူ အ ေနနဲ ႔ ႔ parameter ငါ း လံ း ု အထိ လ က္ ခံ ႏိ င္ ု တ ာျ ဖစ္ ပါ တယ ္ ။(optional: file.txt) [function.။အကယ ္ ၍ ဖိ င္ ု ရွ ရင္ဘာerror မွ ိ ေပၚ မွ ာမဟု တ္ ပါ ဘူ းဖိ င္ ု မရွ ခဲ ိ ရင္ ႔ ေတာ႔ က် ေနာ္ ဆီ ႔ မွ ာ ေတ ာ ႔ အခု အတ ိ င္ ု း ေပၚ ပါ တ ယ္ ။ Warning: fopen(welcome. အရင္ ဆံ းcode ထ ဲ ု မွ ာ ဖိ င္ ု ရွ ိ မရွ ိအရင္ စစ္ ခိ င္ ု း မယ္ျ ပီ း မွ access လု ပ္ ခိ င္ ု း ပါ မယ္ ။ <?php if(!file_exists("welcome.fopen]: failed to open stream: No such file or directory in C:\xampp\htdocs\php\20.php on line 2 ဒီ လိ မ် ု ဳ ိ းerror message မ် ဳ ိ း ကိ ုuser က ိ မရရွ ု ေစခ် ိ င္ တဲ အ တြ ႔ က္ . error_context) 51 Youth Dreams 51 .PHP Guide Book Moe Myint Shein - Custom errors and error triggers - Error reporting Basic Error Handling: Using the die() function ပထ မဆံ း ု ဥပမာအေနနဲ ႔text file တ စ္ ခု ကိ ု ဖြ င္ တဲ ့ ႔ ရိ း ု ရွ င္ း တဲ ႔ code ေလး ပါ .. line number.

die().. echo "Ending Script".PHP Guide Book Moe Myint Shein Error Report Levels user က သတ ္ မွ တ္ တဲ ႔ error handler ေတြ ကိ အ သံ ု း ု ျ ပဳ ႏိ ု င္ တဲ ႔ error အမ် ဳ ိ း အစားေတ ြ ရဲ ႕error report levels ေတြ ျ ဖစ္ ပါ တယ ္ နား မလည ္ လိ ႔ ု အရမ္ း စိ တ္ မညစ္ ေနပါ နဲ ႔ ဦ း . } ဒီ code ေလး က ေတာ႔ ရိ း ု ရွ င္ း တဲ ႔ error handling function တစ္ ခု ပဲ ျ ဖစ္ ပါ တယ ္ ။အဲ ဒါ ေလ းကိ ု စ run တ ဲ အ ခါ ႔ မွ ာerror level နဲ ႔ error message က ိ ရယ ူ ု ျ ပီ း ေတ ာ ႔ output ျ ပေပး ျ ပီ း ေတာ႔ script က ိ အ ဆံ ု း ု သ တ္ တာ ပဲ ျ ဖစ္ ပါ တယ ္ ။ က် ေနာ္ တိ ႔error handling function က ိ ု ုဖန္ တီ း ျ ပီ း ျ ပီ ဆိ ရင္ဘ ယ္ ု အ ခ် န္ ိ မွ ာ trigger လု ပ္ မယ ္(စ run မယ ္ ) ဆိ တ ာက ိ ု ု ဆံ း ု ျ ဖတ္ ရပါ မယ္ ။ Set Error Handler PHP ရဲ ႕default error handler ကေတ ာ ႔built in error handler ပါ ပဲ ။အေပၚ မွ ာေရး ခဲ ႔ တဲ ႔function က ိ ု default error handler အေနနဲ ႔ script အေတ ာအတြ င္ း မွ ာထ ား ပါ မယ္ ။တက ယ္ ေတ ာ ႔error တ စ္ ခ် ဳ ိ ႕ အတြ က္ ပဲ ဒီ error handler ကိ သံ ု း ု ဖိ ႔ ု 52 Youth Dreams 52 . $errstr) { echo "<b>Error:</b> [$errno] $errstr<br />".။ေအး ေအး ေဆ း ေဆ း ေပါ ေနာ္ ႔ …။ဒါ ေတ ြ ရွ တယ ္ ိ လိ ေတ ာ႔ ႔ ု သိ သြ ာ း တာေပါ ႔ အခု က် ေနာ္ တိ ႔ ု error ေတ ြ ကိ ု ကိ င္ ု တြ ယ္ ဖိ အ တြ ႔ ု က္ function တစ္ ခု ကိ ု ဖန္ တီ း ပါ မယ္ ။ function customError($errno.

} ?> သူ ကိ ႔ ု run တ ဲ အ ခါ ႔ မွ ာက ် ေနာ္ က ေတ ာ ႔ ေအာက ္ ပါ အတိ င္ ု းoutput ရပါ တ ယ္ ။ Notice: Value must be 1 or below in C:\xampp\htdocs\php\30.PHP Guide Book Moe Myint Shein သတ ္ မွ တ္ ေပး ႏိ ု င္ ပါ တယ ္ ။ ဒီ လိ နည္ ု း နဲ ႔မတ ူ ညီ တဲ ႔error ေတ ြ ကိ ုမတ ူ ညီ တဲ ႔နည ္ း လ မ္ း ေတြ နဲ ႔ကိ င္ ု တြ ယ ္ေျ ဖရွ င္ း ႏိ င္ ု တာ ျ ဖစ္ ပါ တ ယ္ ။ဒီ ဥပမာမွ ာေတ ာ ႔ error ေတ ြ အာ း လံ း ု အတ ြ က္ က် ေနာ္ တိ ရဲ ႔ ု ႕error handler က ိ သံ ု း ု ပါ မယ ္ ။ set_error_handler(“customError”). error ေတြ အ ား လံ း ု ကိ ကိ ု င္ ု တြ ယ္ ဖိ ႔က် ု ေနာ တိ ္ ရဲ ႔ ု ႕ function ကိ သံ ု း ု မွ ာျ ဖစ္ လိ ႔set_error_handler() function အေနနဲ ု ႔ parameter တ စ္ လံ း ု ပဲ လိ အ ပ္ ု ပါ တယ ္ ။ ဒု တိ ယ parameter ကိ ေတ ာ ု ႔ error level ကိ ု သတ ္ မွ တ္ ေပး ဖိ အတ ြ ႔ ု က္ ထပ္ ေပါ င္ း ထည ္ ႏိ ့ င္ ု ပါ တယ ္ ။ ေအာက ္ က ဥပမာ ေလ း မွ ာေတ ာ ႔မရွ တဲ ိ ႔variable ကိ ုOutput ျ ပေပး ဖိ ႔ၾ ု ကိ ဳ း စား မွ ာ ျ ဖစ္ ပါ တယ ္ ။က ် ေနာ တိ ္ ရဲ ႔ ု ႕error handler ကိ စမ္ ု း ၾ ကည ္ ၾ ့ က တာေပါ ။ ႔ <?php //error handler function function customError($errno. } //set error handler set_error_handler("customError"). //trigger error echo($test). if ($test>1) { trigger_error("Value must be 1 or below"). $errstr) { echo "<b>Error:</b> [$errno] $errstr".php on line 5 53 Youth Dreams 53 .Error: [8] Undefined variable: test ဆ ိ ျ ု ပီ း ေတာ႔ output ရမွ ာ ပါ ။ Trigger an Error user က data ေတြ ကိ ု input ေပး ႏိ င္ ု တဲ ႔ script တ စ္ ခု မွ ာillegal input ေတြ ႔ တဲ အ ခါ ႔ မွ ာerrors ေတ ြ ကိ ု trigger လ ု ပ္ ဖိ အသ ံ ႔ ု း ု ၀င္ ပါ တယ ္ ။ PHP မွ ာေတ ာ ႔trigger_error() function က ိ သံ ု း ု ျ ပီ း လု ပ္ ေဆ ာ င္ ႏိ င္ ု ပါ တ ယ္ ။ ေအာ က္ က ဥပမာမွ ာ ေတ ာ ႔test varuable က 1 ထ က္ ၾ ကီ း မယ္ ဆိ ရင္ ု error တစ္ ခု ျ ဖစ္ မွ ာျ ဖစ္ ပါ တယ ္ ။ <?php $test=2. ?> သူ ကိ ႔ ု run မယ္ ဆိ ရင္ ု .

XML. HTML. Cross Browser Technology လိ ဆိ ႔ ု ႏိ ု ု င္ ပါ တယ ္ ။ AJAX Uses XML And HTTP Requests ရိ း ု ရိ း ု သာမန္ နည္ း နဲ ႔ ေရး ထာ း တဲ ႔web application တစ္ ခု မွ ာhtml form တ စ္ ခု ကိ သံ ု း ု ျ ပီ းinput တစ္ ခု ကိ ု web server ဆီ ကိ ု submit လ ု ပ္ ပါ မယ္ ။web server က data က ိ ု process လ ု ပ္ ျ ပီ း တဲ အ ခါ ႔ မွ ာuser ဆ ီ ကိ ု web page အသ စ္ တ စ္ ခု ကိ ု return ျ ပန္ လ ာပါ မယ ္ ။user က input ေပး တဲ အ ခါ ႔ တိ င္ ု း မွ ာ web page အသစ္ တ စ္ ခု ကိ ုserver က ျ ပန္ ေပး ရတာျ ဖစ္ တဲ အ တြ ႔ က္ ဒီ ရု း ိ ရု း ိ နည ္ း နဲ ေရး ႔ တာက ေႏွ း ပါ တ ယ္ ျ ပီ း ေတ ာ ႔ user friendly မျ ဖစ္ ပါ ဘူ း ။AJAX နည္ း ပညာက ိ သံ ု း ု ရင္ web application ေတြ က web page တ စ္ ခု ကိ ု relode လ ု ပ္ စရာမလိ ပဲ ု နဲ ႔ data ေတ ြ ကိ ု ပိ ႏိ ႔ ု င္ ု ထု တ္ ႏိ င္ ု တာ ျ ဖစ္ ပါ တယ ္ ။ဒီ ကိ စၥ ကိ ု ေနာ က္ ကြ ယ္ မွ ာserver ဆီ ကိ ုHTTP request ေတ ြ ေပး ပိ ျ ႔ ု ခင္ း နဲ အ လု ႔ ပ္ လု ပ္ တ ာျ ဖစ္ ပါ တယ ္ ။server က data ျ ပန္ လ ာတဲ အ ခါJavaScript ကိ ႔ သံ ု း ု ျ ပီ း web page ရဲ ႕ အစိ တ္ အပိ င္ ု း ေလး ကိ ပဲ ု modify လု ပ္ တာ ျ ဖစ္ ပါ တယ ္ ။ေရွ ႕ လာမယ္ ႔ ဥပမာေတြ ကိ ၾ ု က ည္ ရင္ ့ နား လ ည္ မွ ာပါ ။ PHP and AJAX AJAX မွ ာ ေတ ာ ႔ server ရယ ္ လိ မရွ ႔ ု ပါ ိ ဘူ း .. ။ AJAX ဆိ တ ာ က် ု ေနာ္ တိ ရဲ ႔ ု ႕ browser ေပၚ မွ ာ ပဲ run တဲ ႔ နည ္ း ပည ာ တ စ္ ခု ျ ဖစ္ ပါ တ ယ္ ။ browser နဲ ႔web server ရဲ ႕ ၾ ကား မွ ာ HTTP requests (asynchronous data transfer) ကိ သံ ု း ု ပါ တယ္ ။ဆ ိ လိ ု ု တာက web page တစ္ ခု လံ း ု ကိ ု server ဆ ီ ကိ ပိ ု တ ာမဟ ု ႔ ု တ္ ပဲ အဲ ဒီ web page ထ ဲ က အခ် က္ အ လက ္ အနည ္ း ငယ ္ အ စိ တ္ အ ပိ င္ ု း ေလး ကိ ပဲပိ ု တ ာျ ႔ ု ဖစ္ ပါ တ ယ္ ။ေျ ပာရရင္ ေတာ႔ AJAX က web server software ေတ ြ ေပၚ မွ ာ မမွ ခု ီ တဲ ိ ႔ web browser technology တ စ္ ခု ျ ဖစ္ ပါ တယ ္ ။ ဒီ tutorial ထဲ မွ ာေတာ႔ PHP server ေပၚ မွ ာ run တဲ ဥပမာေတ ြ ႔ ကိ အ သ ား ု ေပး ေဖာ ျ ္ ပေပး ပါ မယ ္ ။ 54 Youth Dreams 54 . အဲ ဒါ အကု န္ သိ ရမွ ာ ျ ဖစ္ ပါ တယ ္ .CSS ဒါ ေတ ြ မသ ိ ရင္PHP ေလ ႔ လ ာလ ည္ းသိ ပ္ ေတ ာ မထ ူ ႔ း ပါ ဘူ း .PHP Guide Book Moe Myint Shein Chapter 6... PHP & AJAX PHP and AJAX AJAX INTRODUCTION AJAX= Asynchronous JavaScript And XML AJAX က web browser နဲ ႔ web server ၾ က ား ထဲ က ေနdata ေတြ ကိ ု ပိ ဖိ ႔ ု နဲ ႔ ု ႔ လက ္ ခံ ဖိ အ တြ ႔ ု က္ JavaScript ကိ အသ ံ ု ျ ု ပဳ ပါ တ ယ္ ။ AJAX နည္ း ပညာေၾ ကာင္ ့ user က အေျ ပာင္ း အလ ဲ တ စ္ ခု လ ု ပ္ လိ က္ ု တဲ အ ခါ ႔ မွ ာ web page တ စ္ ခု လံ း ု ကိ ု relode လု ပ္ လိ က္ ု တာ မ် ိ ဳ း မဟ ု တ္ ပဲ နဲ ႔ေနာ က္ ကြ ယ္ မွ ာweb server နဲ ႔ data exchange လု ပ္ တဲ အ တြ ႔ က္ web page ေတြ ကိ ပိ ု ျ ု ပီ း ေတ ာ႔ responsive ျ ဖစ္ ပါ တယ ္ ။AJAX ကေအာက္ ပါstandards ေတ ြ ေပၚ မွ ာအေျ ခခံ ထာ း ပါ တ ယ္ ။ -JavaScript -XML -HTML -CSS PHP က ိ ေလ႔ ု လာ တဲ အ ခါ ႔ မွ ာ AJAX က ိ မသိ ု လိ မျ ႔ ု ဖစ္ ပါ ဘူ း … ။ JavaScript. အာ း လံ း ု ဆ က္ စပ္ ျ ပီ း အသံ း ု ခ် ရမွ ာျ ဖစ္ လိ ပါ ႔ ု ။ AJAX အေနနဲ ႔ major browser ေတြ အ ား လံ း ု က support လ ု ပ္ ၾ ကပါ တယ ္ ။ဒါ ေၾ ကာင္ ့ AJAX application ေတြ က browser နဲ ႔ platform ေပၚ မွ ာမွ ခိ ီ မႈ ု မရွ ဘဲ ိ … Cross Platform.

XMLHTTP အစားXsxml2.0 အေၾ ကာ င္ း ေျ ပာျ ဖစ္ ၾ က တဲ အ ခါ ႔ မွ အျ ပည္ အ ၀အသ ံ ့ း ု ခ် ၾ က တာ ျ ဖစ္ ပါ တ ယ္ ။မတ ူ ညီ တဲ ႔browser ေတြ အ ေနနဲ ႔XMLHttpRequest object က ိ ဖန္ ု တီ း ဖိ အ တြ ႔ ု က ္ကြ ဲ ျ ပာ း တဲ နည ္ ႔ း လမ္ း ေတြ ကိ ု သံ း ု ၾ က ပါ တယ ္ ။ Internet Explorer က ActiveXObject ကိ အ သံ ု း ု ျ ပဳ ပါ တ ယ္ ။တ ျ ခာ း browser ေတြ က ေတာ႔build in JavaScript object တစ္ ခု ျ ဖစ္ တဲ ႔XMLHttpRequest ကိ အသ ံ ု း ု ျ ပဳ ပါ တ ယ္ ။ေအာက္ က code ေလး က ဒီ ျ ပသနာကိ ေျ ု ပလည ္ ေစတ ဲ အ ရိ ႔ း ု ရွ င္ း ဆံ းနည္ ု း လ မ္ း ပါ ။ var XMLHttp=null if (window. Opera 8. } catch (e) { // Internet Explorer try { 55 Youth Dreams 55 .PHP Guide Book Moe Myint Shein AJAX XMLHttpReuest XMLHttpRequest object ကေတ ာ ႔ AJAX ရဲ ႕ အဓိ က ေသ ာ႔ ခ် က္ ျ ဖစ္ ပါ တ ယ္ ။July 2000 Internet Explorer ထ ြ က္ က တည္ း က သံ း ု လိ ရတ ာ ႔ ု ျ ဖစ္ ပါ တယ ္ ။ဒါ ေပမယ ္ ႔ 2005 မွ ာAJAX နဲ ႔Web 2.ActiveXObject က available ျ ဖစ္ မျ ဖစ္ စစ္ ပါ တ ယ္ ။ Internet Explorer 5.XMLHttpRequest ဆိ တဲ ု ႔object ေလး available ျ ဖစ္ မျ ဖစ္ စစ္ ပါ တယ ္ ။Firefox.XMLHttpRequest) { XMLHttp=new XMLHttpRequest() } else if (window.XMLHTTP ဆ ိ တဲ ု ႔Microsoft ရဲ ႕latest version ကိ ု load လ ု ပ္ တ ာျ ဖစ္ ပါ တ ယ္ ။အဲ ဒါ ကေတ ာ ႔ IE 6 နဲ ေနာ ႔ က္ ပိ င္ ု း မွ ာမွ available ျ ဖစ္ တ ာျ ဖစ္ ပါ တ ယ္ ။ function GetXmlHttpObject() { var xmlHttp=null. Safari ေနာက္ ပိ င္ ု းversion ေတြ မွ ာဆိ ရင္ ု available ျ ဖစ္ မွ ာျ ဖစ္ ပါ တယ္ ။တ ကယ ္ လိ ႔ ု available ျ ဖစ္ တယ ္ ဆိ ရင္ XMLHttp=new ု XMLHttpRequest() ဆိ ျ ု ပီ း ေတာ႔ object အသစ္ တ စ္ ခု ဖန္ တီ း ပါ တ ယ္ ။ available မျ ဖစ္ ရင္ ေတ ာ႔window.0+.ActiveXObject) { XMLHttp=new ActiveXObject("Microsoft. Opera. Safari xmlHttp=new XMLHttpRequest().5 နဲ ႔ ေနာက ္ ပိ င္ ု း ေတ ြ အာ း လံ း ု မွ ာ available ျ ဖစ္ ပါ တ ယ္ ။ available ျ ဖစ္ တ ယ္ ဆိ ရင္XMLHttp=new ActiveXObject() ဆ ိ ု ျ ု ပီ း ေတာ႔object အသစ္ တ စ္ ခု ကိ ုဖန္ တီ း ပါ တ ယ္ ။ ပရိ ဂရမ္ ု မာ ေတ ြ အ ေနနဲ ႔ဒီ ထ က္ ပိ ေက ာ ု င္ း တဲ ႔ပိ ျ ု မန္ တဲ ႔XMLHttpRequest object က ိ ု ပိ ႏွ ု စ္ သ က္ႏိ င္ ု ပါ တယ ္ ။ေအာက ္ က ဥပမာေလး က ေတ ာ႔ Microsoft. try { // Firefox.XMLHTTP") } အရင္ ဆံ းXMLHttpRequest object ကိ ု အသ ံ ု း ု ျ ပဳ ဖိ အတ ြ ႔ ု က္ XMLHttp variable တ စ္ ခု ကိ ု ဖန္ တီ း ပါ တယ ္ ။တ န္ ဖိ း ု ကိ ေတာ႔ ု null လိ ႔သ တ္ ု မွ တ္ ေပး ခဲ ပါ ႔ တ ယ္ ။ ျ ပီ း တဲ ေနာက္ ႔ မွ ာ window.

Opera နဲ ႔ Safari)အရXMLHttp= new XMLHttpRequest() object ကိ ဖန္ ု တီ း ဖိ ႔ၾ ု ကိ ဳ း စာ း ပါ တ ယ္ ။ ေနာက ္ တ ခါ Microsoft နည ္ း လ မ္ း နဲ ႔ IE 6 နဲ ေနာ ႔ က္ ပိ င္ ု း အတ ြ က ္ XMLHttp=new ActiveXObject(“Msxml2. } } return xmlHttp.html လိ ေပး ႔ ု ပါ မယ္ ။ <html> <head> <script src="clienthint.js"></script> </head> <body> 56 Youth Dreams 56 . } ဒီ ဥပမာက ဘ ာ ကိ ေျ ု ပာတာလ ဲ ဆိ ရင္ ု အရင္ ဆံ း ု XMLHttpRequest object ကိ သံ ု း ု ဖိ အတ ြ ႔ ု က ္XMLHttp ဆိ တဲ ု ႔ variable ေလ း ကိ ု ဖန္ တီ း ပါ တယ ္ ။အဲ ဒီ ေနာ က္ web standarads (Mozila.XMLHTTP object ကိ ဖန္ ု တီ း ဖိ ၾ ႔ ု ကိ ဳ း စား ပါ တယ ္ ။အဲ ဒီ မွ ာerror ျ ဖစ္ တ ယ္ ဆိ မွ ု အေဟာင္ း နည ္ း လ မ္ း (IE 5.XMLHTTP”) က ိ ၾ ု ကိ ဳ း စား ပါ တယ ္ ။ AJAX Suggest ေအာက ္ က AJAX ဥပမာမွ ာ user က web form တ စ္ ခု ထဲ ကိ ု data ရိ က္ ု ထ ည္ ျ ့ ပီ း ေတာ႔ web page တစ္ ခု က web server နဲ ႔ ဘယ ္ လိ ု communticate လု ပ္ တယ ္ ဆိ တာ ု ကိ ု သရု ပ္ ျ ပသြ ား မွ ာျ ဖစ္ ပါ တ ယ္ ။ ေအာက ္ ကလ ိ ပံ ု ု စံ မ် ဳ ိ း ေလး ေရး မွ ာပါ ။ box ေလ း ထဲ မွ ာcharacter ေလး တ စ္ ခု ခု ကိ ရိ ု က္ ု ထ ည္ တာ ့ နဲ ႔ suggestion မွ ာေပၚ လာမယ္ ။ ဒီ ဥပမာမွ ာpage သ ံ း ု ခု ပါ ၀င္ ပါ မယ္ ။ - ရိ း ု ရိ းHTML page ု - JavaScript page - PHP page The HTML Form အခု က ေတာ႔ HTML page ျ ဖစ္ ပါ တ ယ္ ။သူ မွ ႔ ာform အတ ြ က္ HTML code ရယ္ JavaScript ကိ ေခၚ ု တဲ ႔ link ရယ ္ ပါ ၀င္ ပါ တ ယ္ ။ ဒီ html file က ိ ု ajaxtesting.XMLHTTP").PHP Guide Book Moe Myint Shein xmlHttp=new ActiveXObject("Msxml2. } catch (e) { xmlHttp=new ActiveXObject("Microsoft.5) XMLHttp=new ActiveXObject(“ Microsoft.XMLHTTP").

true). evernt က ိ အစပ် ု ိ ဳ း ျ ပီ း တဲ အ ခ် ႔ န္ ိ မွ ာshowHint() ဆ ိ တဲ ု ႔ function ေလး ကိ ေခၚ ု ျ ပီ း ေတာ႔ execute လု ပ္ ပါ တ ယ္ ။ 3. user က input field ေလး ထဲ မွ ာkeyboard ေပၚ က key တ စ္ ခု ကိ ုႏွ ပ္ ိ ျ ပီ း ေတာ႔release လ ု ပ္ လိ က္ ု တဲ အ ခါ ႔ event တစ္ ခု ကိ ု အစပ် ဳ ိ း ေပး ပါ တ ယ္ ။ 2. } xmlHttp=GetXmlHttpObject(). return.php".getElementById("txtHint").value)"> </form> <p>Suggestions: <span id="txtHint"></span></p> </body> </html> ဒီ ဥပမာမွ ဆိ ရင္ ု txt1 ဆိ တဲ ု ႔ Input filed ေလ း ပါ တဲ ႔ ရိ း ု ရိ းHTML form ေလး ု ပါ ပါ တယ ္ ။အလု ပ္ လု ပ္ ပံ က ေတ ာ ု ႔ 1.open("GET". if (xmlHttp==null) { alert ("Browser does not support HTTP Request"). xmlHttp. xmlHttp. xmlHttp. return.url.js လိ သိ ႔ ု မ္ း မွ ာျ ဖစ္ ျ ပီ းHTML document နဲ ႔ လ င္ လု ့ ပ္ ထာ း တာ ျ ဖစ္ ပါ တယ ္ ။ var xmlHttp. 57 Youth Dreams 57 . url=url+"&sid="+Math.send(null). url=url+"?q="+str.innerHTML="".length==0) { document.onreadystatechange=stateChanged.random(). } var url="gethint. form ရဲ ႕ ေအာက္ မွ ာtxtHint ဆိ တဲ ု ႔ <span> ေလ း ရွ ိ ပါ တယ ္ ။အဲ ဒါ ကေတ ာ ႔ showHint() ကျ ပန္ လာတဲ ႔ return data ေလးေပၚ မဲ ေနရာေလး ႔ ပဲ ျ ဖစ္ ပါ တ ယ္ ။ ေအာက ္ က JavaScript code က ိ ေတ ာ႔ ု clienthint.PHP Guide Book Moe Myint Shein <form> First Name: <input type="text" id="txt1" onkeyup="showHint(this. function showHint(str) { if (str.

PHP Guide Book

Moe Myint Shein

}
function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
document.getElementById("txtHint").innerHTML=xmlHttp.responseText;
}
}
function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{

xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}// JavaScript Document
ဒီ
ဥပမာေလး
ကိ
ရွ

င္

ရရင္
ေတ ာ႔showHint()function က inpurt field ထဲ
မွ
ာ က်
ေနာ္
တိ
႔character တစ္

လံ


ရိ
က္

လိ
က္

တဲ

အခါ
တိ
င္


အလု
ပ္
လု
ပ္
ပါ
တယ ္
။အကယ ္
၍ input filed ထ ဲ
မွ
ာinput ရွ


ပီ

သာ
းဆိ
လိ

တ ာက str.length>0 ျ

ဖစ္
သြ
ား
တ ယ္
ဆိ
ရင္

ေအာက ္
ပါ
အတိ
င္

းexecute လ ု
ပ္
ပါ
တ ယ္

1.

server က ိ
ေပး

ပိ
မယ္


url filename က ိ

သတ ္
မွ
တ္
ပါ
တယ ္
။ဒီ
မွ

ေတ ာ

gethint.php ပါ

2.

input

filed

ထဲ
မွ
ာေရာ
က္
ေနမယ ္
႔ content

(character)

နဲ
႔ ယွ
ဥ္
တြ


ပီ

ေတ ာ
႔ parameter

(q)

ေလး
ကိ
ေပါ

င္

ထ ည္
ပါ

တ ယ္

3.

58

server က cached file က ိ
သံ



မိ
တာ
က ေနကာကြ
ယ္
ဖိ


random number တ စ္
ခု
ကိ

ထ ပ္
ေပါ
င္

ထ ည္
ပါ

တ ယ္

Youth Dreams

58

PHP Guide Book

Moe Myint Shein

4.

GetXmlHttpObject function ကိ
ေခၚ


ပီ

ေတ ာ႔
XMLHTTP object က ိ
ဖန္

တီ

ယူ
ပါ
တယ ္
။ျ
ပီ

ေတာ႔
ေျ
ပာင္

လဲ
မႈ
တ စ္
ခု

ဖစ္
တဲ
အ ခါအဲ

ဒီ
object အေနနဲ

StateChanged ဆ ိ
တဲ


function ေလ း
ကိ

execute လ ု
ပ္
ေစပါ
တယ ္

5.

ေပး
လိ
က္

တဲ

url အတိ
င္

းXMLHTTP object ကိ

ဖြ
င္
လိ

က္

ပါ
တ ယ္

6.

server ဆ ီ
ကိ

HTTP request ကိ
လွ

မ္

ပိ
လိ


က္

ပါ
တယ ္

input filed က ဗလ ာျ
ဖစ္
ေနတယ ္
ဆိ
ရင္function က txtHint ရဲ

႕placeholder (suggestion ေပၚ
တဲ
ေနရာ

) မွ

ရွ
ေနတ ဲ


content (စာေတ ြ
) အား
လံ


ကိ

ရွ
င္

လင္

ပစ္
လိ
က္

ပါ
တ ယ္

The stateChanged() Function
XMLHTTP object ရဲ
႕state ေျ
ပာင္

လဲ
တဲ
အ ခါ

တိ

င္

မွ
ာဒီ
function က ိ

execute(တြ
က္
ခ်
က္
) လု
ပ္
ပါ
တ ယ္

state က 4 ဒါ
မွ
မဟ ု
တ္
complete အျ
ဖစ္
ေျ
ပာင္

တဲ
အ ခါ

txtHint ရဲ
႕content က ိ

သူ
response လ ု
ပ္
တဲ

text နဲ


ဖည္
ပါ

တယ္

The GetXmlHttpObject() Function
AJAX applications အေနနဲ
႔XML support လု
ပ္
တဲ
႔browser နဲ
ပဲrun မွ

ာျ
ဖစ္
တဲ
ပအတ ြ
က ္GetXMLHttpObjet()
ကိ
ေခၚ


ပီ

ေတာဒီ

ပသက ိ
နည္


လမ္

တစ္
ခု
မဟ ု
တ္
တ စ္
ခု
နဲ
ေျ

ဖရွ
င္

ႏိ
င္

ေစဖိ


XMLHTTP object အမ်



မ်



ကိ
ဖန္

တီ

ပါ
တယ ္

အခုက်
န္
တဲ
႔PHP page အတ ြ
က္

ဖစ္
ပါ
တယ ္
။JavaScript code ကေခၚ
တဲ
လိ

အ ပ္

တဲ
႔server page က ေတာ႔
gethint.php
လိ
ေခၚ


တဲ

Php file ေလး
ပါ
။ဒီ
gethint.php ဖိ
င္

ေလ း
ထဲ
က code မွ

ေတ ာ႔
နာမည္
ေတ ြ
ရဲ
႕array တစ္
ခု
ကိ

စစ္

ပီ

ေတ ာ

client
ဆီ
ကိ

သက ္
ဆိ
င္

ရာအမည္
ကိ

return ျ
ပန္
ေပး
ပါ
မယ္

<?php
// Fill up array with names
$a[]="Anna";

$a[]="Brittany";
$a[]="Cinderella";
$a[]="Diana";
$a[]="Eva";
$a[]="Fiona";
$a[]="Gunda";
$a[]="Hege";
$a[]="Inga";
$a[]="Johanna";
$a[]="Kitty";
$a[]="Linda";
$a[]="Nina";
$a[]="Ophelia";
$a[]="Petunia";

$a[]="Amanda";
$a[]="Raquel";
$a[]="Cindy";
$a[]="Doris";
$a[]="Eve";

59

Youth Dreams

59

PHP Guide Book

Moe Myint Shein

$a[]="Evita";
$a[]="Sunniva";
$a[]="Tove";
$a[]="Unni";
$a[]="Violet";
$a[]="Liza";
$a[]="Elizabeth";
$a[]="Ellen";
$a[]="Wenche";
$a[]="Vicky";

//get the q parameter from URL
$q=$_GET["q"];
//lookup all hints from array if length of q>0
if (strlen($q) > 0)
{
$hint="";
for($i=0; $i<count($a); $i++)
{
if (strtolower($q)==strtolower(substr($a[$i],0,strlen($q))))
{
if ($hint=="")
{

$hint=$a[$i];
}
else
{
$hint=$hint." , ".$a[$i];
}
}
}
}
//Set output to "no suggestion" if no hint were found
//or to the correct values
if ($hint == "")
{

$response="no suggestion";
}
else
{
$response=$hint;

60

Youth Dreams

60

ဘာမွ match ျ ဖစ္ တ ာမေတ ြ ရင္ ႔ ေတာ႔ no suggestion ဆ ိ ျ ု ပီ းresponse ျ ဖစ္ မယ ္ ။ 5.js"></script> </head> <body> <form> Select a CD: <select name="cds" onchange="showCD(this. အဲ ဒါ ဆိ ရင္ ု ေတ ာ ႔ ajaxtesting.PHP Guide Book Moe Myint Shein } //output the response echo $response.php ajaxtesting.html ကိ ု browser မွ ာrun တ ဲ အ ခါPHP နဲ ႔ ႔ AJAX နဲ တြ ႔ သံ ဲ း ု ထား တဲ ႔ ေပ် ာ္ စရာ web application ပိ စိ ေလ း တ စ္ ခု ကိ ရပါ ု ျ ပီ ခင္ ဗ် ာ။:D PHP AND AJAX XML EXAMPLE အခု တ ခါ က ေတာ႔AJAX ကိ ုXML file နဲ ယွ ႔ ဥ္ တဲ သံ ြ း ု ႏိ င္ ု ပါ တ ယ္ ။ ေအာ က္ က ဥပမာမွ ာ web page တစ္ ခု က ေန AJAX နည ္ း ပည ာ ကိ သံ ု း ု ျ ပီ း ေတာ႔ XML file တ စ္ ခု စီ က အခ် က္ အ လက ္ ေတြ ကိ ု ဘယ ္ လိ ေခၚ ု ယူ သံ း ု ႏိ င္ ု (fetch) လု ပ္ ႏိ င္ ု တ ယ္ ဆိ တ ာက ိ ု ု ေလ ႔ လ ာမွ ာျ ဖစ္ ပါ တ ယ္ ။ Select a CD: ဆိ ျ ု ပီ း ေတ ာ ႔စာ သာ း ေလ း ရွ မယ္ ိ ေဘ း မွ ာ drop down box ေလ း ရွ မယ ္အဲ ိ ဒီ ထဲ မွ ာ ေရြ း ခ် ယ္ စရာ သံ း ု ခု ရွ မယ ္ ိ . တစ္ ခု ထ က္ ပိ ျ ု ပီ း ေတြ ရင္ ႔ ဒီ နာမည္ ေတြ ကိ ု response ေပး မယ္ အခု အ ခ် န္ ိ မွ ာ clienthint.html လိ ႔ ု save လိ က္ ု ပါ တယ ္ ။ <html> <head> <script src="selectcd. ဒီ response ေတြ အ ား လံ း ု ကိ ု txtHint placeholder ကိ ပိ ု ေပး ႔ ု မယ ္ ။ 4. တစ္ ခု ကိ ေရြ ု း လိ က္ ု ရင္ ေအာက္ မွ ာအဲ ဒါ နဲ ႔ ပတ္ သ က္ တဲ ႔ CD info ကိ ျ ု ပေပး မယ္ ။ဒါ မ် ဳ ိ း ေလး ပါ ။ ဒီ ဥပမာေလး မွ ာလည ္ း HTML form တစ္ ခု၊ XML file တစ္ ခု၊ JavaScript တ စ္ ခု၊ PHP page တ စ္ ခု စု စု ေပါ င္ း ေလ း ခု ပါ ၀င္ ပါ မယ ္ ။ THE HTML FORM ဒီ ေအာက္ က ဥပမာ ေလ း မွ ာေတ ာ ႔ HTML form ေလး ပါ မယ ္ ။JavaScript ဖိ င္ ု ဆီ ကိ လ ည္ ု းလ င္ ့ ခ် တ္ ိ ထ ား တာ ျ ဖစ္ ပါ တ ယ္ ။ ဒီ HTML code ေတ ြ ကိ ေတ ာ ု ႔ ajaxxml. JavaScript က ေနလ ွ မ္ း ပိ တဲ ႔ ု ႔ character နဲ ႔ match ျ ဖစ္ တဲ ႔ အမည ္ ကိ ရွ ု ာတယ ္ ။ 2.js . gethint. နာ မည္ တစ္ ခု ထက ္ ပိ ျ ု ပီ း အတြ မိ ဲ တ ယ္ ဆိ ရင္ ု response string မွ ာ အမည္ ေတ ြ အာ း လံ း ု ပါ လ ာမယ္ ။ 3.html ဖိ င္ ု သံ း ု ခုက တူ ညီ တဲ ႔folder directory ေအာ က္ မွ ာ save ခဲ တ ာျ ႔ ဖစ္ ရပါ မယ္ . ?> JavaScript ဖိ င္ ု က ေန(strlen($q)>0) ျ ဖစ္ တဲ အ ခါ ႔ တိ င္ ု းtext တစ္ ခု ခု ကိ ု လွ မ္ း ပိ တဲ ႔ ု အ ခါေအာက ္ ႔ ပါ အတိ င္ ု း ျ ဖစ္ ေပၚ ပါ တယ ္ ။ 1...value)"> <option value="Bob Dylan">Bob Dylan</option> <option value="Bee Gees">Bee Gees</option> <option value="Cat Stevens">Cat Stevens</option> </select> </form> 61 Youth Dreams 61 .

</b></div> </p> </body> </html> ဒါ က ရိ း ု ရွ င္ း တဲ ႔ HTML form ေလ း ပဲ ျ ဖစ္ ပါ တယ ္ ။cds ဆိ တဲ ု ႔ drop down box ေလး ပါ မယ ္ ။အဲ ဒါ ရဲ ႕ ေအာက္ မွ ာေတာ႔ txtHint လိ ေခၚ ႔ ု တဲ ႔div တစ္ ခု ပါ ပါ မယ္ ။ အဲ ဒီdiv က ိ ုweb server က ေနျ ပန္ လ ာမယ ္ ႔အခ် က္ အ လက ္ ေတြ ကိ ုျ ပေပး မယ ္ ႔ေနရာ placeholder အေနနဲ အသ ံ ႔ း ု ျ ပဳ တာ ျ ဖစ္ ပါ တယ ္ ။user က data တစ္ ခု ကိ ုေရြ း လိ က္ ု တဲ အ ခါshowCD ဆိ ႔ တဲ ု ႔function က ိ ု execute(run) လ ု ပ္ မွ ာျ ဖစ္ ပါ တယ ္ ။onchange event ေပၚ မွ ာ မူ တ ည္ ျ ပီ း ေတ ာ ႔ function ကိ စrun မွ ု ာျ ဖစ္ ပါ တ ယ္ ။ဆိ လိ ု တ ာက ု user က drop down box ထ ဲ က တ န္ ဖိ း ု ကိ ု ေျ ပာ င္ း လိ က္ ု တဲ အခါ ႔ တိ င္ ု းေရြ း ခ် ယ္ မႈ ေျ ပာင္ း လိ က္ ု တဲ အ ခါ ႔ တိ င္ ု း မွ ာေပါ ႔showCD ဆိ တဲ ု ႔ function က ိ သြ ု ား ေခၚ မွ ာျ ဖစ္ ပါ တ ယ္ ။ XML file အေနနဲ က ေတ ာ ႔ ႔ေအာက္ က code ေလး ကိ ုcd_catalog.90</PRICE> <YEAR>1985</YEAR> </CD> − <CD> <TITLE>Hide your heart</TITLE> <ARTIST>Bonnie Tyler</ARTIST> <COUNTRY>UK</COUNTRY> <COMPANY>CBS Records</COMPANY> <PRICE>9.90</PRICE> <YEAR>1982</YEAR> </CD> − <CD> <TITLE>Still got the blues</TITLE> <ARTIST>Gary Moore</ARTIST> <COUNTRY>UK</COUNTRY> <COMPANY>Virgin records</COMPANY> <PRICE>10.html ဆိ တဲ ု ႔file နဲ တူ ႔ ညီ တဲ ႔ folder ေအာက ္ မွ ာ ထ ား လိ က္ ု ပါ တယ္ ။ <CATALOG> <CD> <TITLE>Empire Burlesque</TITLE> <ARTIST>Bob Dylan</ARTIST> <COUNTRY>USA</COUNTRY> <COMPANY>Columbia</COMPANY> <PRICE>10.90</PRICE> <YEAR>1988</YEAR> </CD> − <CD> <TITLE>Greatest Hits</TITLE> <ARTIST>Dolly Parton</ARTIST> <COUNTRY>USA</COUNTRY> <COMPANY>RCA</COMPANY> <PRICE>9.20</PRICE> 62 Youth Dreams 62 .xml လ ိ ႔save ျ ု ပီ းခု နက ajaxxml.PHP Guide Book Moe Myint Shein <p> <div id="txtHint"><b>CD info will be listed here.

90</PRICE> <YEAR>1997</YEAR> </CD> − <CD> <TITLE>One night only</TITLE> <ARTIST>Bee Gees</ARTIST> <COUNTRY>UK</COUNTRY> <COMPANY>Polydor</COMPANY> <PRICE>10.50</PRICE> <YEAR>1990</YEAR> </CD> − <CD> <TITLE>Romanza</TITLE> <ARTIST>Andrea Bocelli</ARTIST> <COUNTRY>EU</COUNTRY> <COMPANY>Polydor</COMPANY> <PRICE>10.10</PRICE> <YEAR>1973</YEAR> </CD> − <CD> <TITLE>Maggie May</TITLE> <ARTIST>Rod Stewart</ARTIST> <COUNTRY>UK</COUNTRY> <COMPANY>Pickwick</COMPANY> <PRICE>8.70</PRICE> <YEAR>1987</YEAR> </CD> − <CD> <TITLE>Black angel</TITLE> <ARTIST>Savage Rose</ARTIST> 63 Youth Dreams 63 .PHP Guide Book Moe Myint Shein <YEAR>1990</YEAR> </CD> − <CD> <TITLE>Eros</TITLE> <ARTIST>Eros Ramazzotti</ARTIST> <COUNTRY>EU</COUNTRY> <COMPANY>BMG</COMPANY> <PRICE>9.90</PRICE> <YEAR>1998</YEAR> </CD> − <CD> <TITLE>Sylvias Mother</TITLE> <ARTIST>Dr.Hook</ARTIST> <COUNTRY>UK</COUNTRY> <COMPANY>CBS</COMPANY> <PRICE>8.80</PRICE> <YEAR>1996</YEAR> </CD> − <CD> <TITLE>When a man loves a woman</TITLE> <ARTIST>Percy Sledge</ARTIST> <COUNTRY>USA</COUNTRY> <COMPANY>Atlantic</COMPANY> <PRICE>8.

90</PRICE> <YEAR>1995</YEAR> </CD> − <CD> <TITLE>1999 Grammy Nominees</TITLE> <ARTIST>Many</ARTIST> <COUNTRY>USA</COUNTRY> <COMPANY>Grammy</COMPANY> <PRICE>10.PHP Guide Book Moe Myint Shein <COUNTRY>EU</COUNTRY> <COMPANY>Mega</COMPANY> <PRICE>10.20</PRICE> <YEAR>1971</YEAR> </CD> − <CD> <TITLE>Soulsville</TITLE> <ARTIST>Jorn Hoel</ARTIST> <COUNTRY>Norway</COUNTRY> <COMPANY>WEA</COMPANY> <PRICE>7.90</PRICE> <YEAR>1997</YEAR> </CD> − <CD> <TITLE>Tupelo Honey</TITLE> <ARTIST>Van Morrison</ARTIST> <COUNTRY>UK</COUNTRY> <COMPANY>Polydor</COMPANY> <PRICE>8.70</PRICE> <YEAR>1995</YEAR> </CD> − <CD> <TITLE>Big Willie style</TITLE> <ARTIST>Will Smith</ARTIST> <COUNTRY>USA</COUNTRY> <COMPANY>Columbia</COMPANY> <PRICE>9.90</PRICE> <YEAR>1990</YEAR> </CD> − 64 Youth Dreams 64 .90</PRICE> <YEAR>1996</YEAR> </CD> − <CD> <TITLE>The very best of</TITLE> <ARTIST>Cat Stevens</ARTIST> <COUNTRY>UK</COUNTRY> <COMPANY>Island</COMPANY> <PRICE>8.20</PRICE> <YEAR>1999</YEAR> </CD> − <CD> <TITLE>For the good times</TITLE> <ARTIST>Kenny Rogers</ARTIST> <COUNTRY>UK</COUNTRY> <COMPANY>Mucik Master</COMPANY> <PRICE>8.

90</PRICE> <YEAR>1983</YEAR> </CD> − <CD> <TITLE>Midt om natten</TITLE> <ARTIST>Kim Larsen</ARTIST> <COUNTRY>EU</COUNTRY> <COMPANY>Medley</COMPANY> <PRICE>7.90</PRICE> <YEAR>1991</YEAR> </CD> − <CD> <TITLE>The dock of the bay</TITLE> <ARTIST>Otis Redding</ARTIST> <COUNTRY>USA</COUNTRY> <COMPANY>Atlantic</COMPANY> <PRICE>7.90</PRICE> <YEAR>1987</YEAR> </CD> − <CD> <TITLE>Picture book</TITLE> <ARTIST>Simply Red</ARTIST> <COUNTRY>EU</COUNTRY> <COMPANY>Elektra</COMPANY> <PRICE>7.80</PRICE> <YEAR>1983</YEAR> </CD> − <CD> <TITLE>Pavarotti Gala Concert</TITLE> <ARTIST>Luciano Pavarotti</ARTIST> <COUNTRY>UK</COUNTRY> <COMPANY>DECCA</COMPANY> <PRICE>9.90</PRICE> <YEAR>1988</YEAR> </CD> − <CD> <TITLE>Bridge of Spies</TITLE> <ARTIST>T'Pau</ARTIST> <COUNTRY>UK</COUNTRY> <COMPANY>Siren</COMPANY> <PRICE>7.20</PRICE> 65 Youth Dreams 65 .PHP Guide Book Moe Myint Shein <CD> <TITLE>Stop</TITLE> <ARTIST>Sam Brown</ARTIST> <COUNTRY>UK</COUNTRY> <COMPANY>A and M</COMPANY> <PRICE>8.90</PRICE> <YEAR>1987</YEAR> </CD> − <CD> <TITLE>Private Dancer</TITLE> <ARTIST>Tina Turner</ARTIST> <COUNTRY>UK</COUNTRY> <COMPANY>Capitol</COMPANY> <PRICE>8.

responseText } } function GetXmlHttpObject() { var xmlHttp=null.send(null) } function stateChanged() { if (xmlHttp.readyState==4 || xmlHttp.open("GET".onreadystatechange=stateChanged xmlHttp. } catch (e) { 66 Youth Dreams 66 .20</PRICE> <YEAR>1987</YEAR> </CD> </CATALOG> ေအာက ္ က code ကေတာ႔ selectcd. Safari xmlHttp=new XMLHttpRequest().php" url=url+"?q="+str url=url+"&sid="+Math.readyState=="complete") { document.0+.innerHTML=xmlHttp.url.80</PRICE> <YEAR>1987</YEAR> </CD> − <CD> <TITLE>Unchain my heart</TITLE> <ARTIST>Joe Cocker</ARTIST> <COUNTRY>USA</COUNTRY> <COMPANY>EMI</COMPANY> <PRICE>8.js ဆိ ျ ု ပီ း ေတ ာ ႔ သိ မ္ း မယ ္ ႔ JavaScript code ပဲ ျ ဖစ္ ပါ တ ယ္ ။ var xmlHttp function showCD(str) { xmlHttp=GetXmlHttpObject() if (xmlHttp==null) { alert ("Browser does not support HTTP Request") return } var url="getcd. Opera 8.getElementById("txtHint"). try { // Firefox.PHP Guide Book Moe Myint Shein <YEAR>1985</YEAR> </CD> − <CD> <TITLE>Red</TITLE> <ARTIST>The Communards</ARTIST> <COUNTRY>UK</COUNTRY> <COMPANY>London</COMPANY> <PRICE>7.true) xmlHttp.random() xmlHttp.

echo(": "). $xmlDoc = new DOMDocument(). for ($i=0. } catch (e) { xmlHttp=new ActiveXObject("Microsoft.PHP Guide Book Moe Myint Shein // Internet Explorer try { xmlHttp=new ActiveXObject("Msxml2. } } return xmlHttp. $xmlDoc->load("cd_catalog.php ဆ ိ တဲ ု ဖိ ႔ င္ ု ေလ း ျ ဖစ္ ပါ တယ ္ ။ေအာ က္ ပါ အတ ိ င္ ု းေရး ျ ပီ း သိ မ္ း ပါ မယ္ ။ XML document cd_catalog.xml"). echo($cd->item($i)->childNodes->item(0)->nodeValue).XMLHTTP"). } stateChanged() နဲ ႔ GetXmlHttpObject ေတ ြ က ေတ ာ ႔ ေရွ ႕ ဥပမာ တ စ္ ခု က အတ ိ င္ ု း ပါ ပဲ ။ showCD() function ရဲ ႕ အလ ု ပ္ လု ပ္ ပံ က ေတာ႔ drop ု down box ထဲ က item တ စ္ ခု ကိ ေရႊ ု း လိ က္ ု ျ ပီ ဆိ ု တာနဲ ႔ အလု ပ္ လု ပ္ တ ာျ ဖစ္ ပါ တ ယ္ ။သ ူ လ ည္ း ပဲ အေရွ ႕ မွ ာေလ႔ လာ ခဲ တဲ ႔ ႔ showHint() လ ိ မ် ု ဳ ိ း ပဲ အ လု ပ္ လု ပ္ တ ာျ ဖစ္ ပါ တယ ္ ။ JavaScript ကေနလ ွ မ္ း ေခၚ မယ္ ႔server page က ေတာ႔getcd.$i++) { //Process only element nodes if ($cd->item($i)->nodeType==1) { echo($cd->item($i)->nodeName). echo("<br />").$i<$cd->length. for ($i=0. } } ?> 67 Youth Dreams 67 . $x=$xmlDoc->getElementsByTagName('ARTIST'). $i++) { //Process only element nodes if ($x->item($i)->nodeType==1) { if ($x->item($i)->childNodes->item(0)->nodeValue == $q) { $y=($x->item($i)->parentNode). $i<=$x->length-1.xml ကိ ု load လု ပ္ ဖိ အတ ြ ႔ ု က ္ XML DOM ကိ သံ ု း ု ျ ပီ း PHP နဲ ႔ ေရး ထား တာျ ဖစ္ ပါ တယ္ ။XML file ထဲ က ေနquery run ျ ပီ း ေတ ာ ႔ HTML အေနနဲ ႔ result ကိ ု return ျ ပန္ လ ာတာျ ဖစ္ ပါ တယ ္ ။ <?php $q=$_GET["q"].XMLHTTP"). } } } $cd=($y->childNodes).

js ဆ ိ တဲ ု ႔ JavaScript က ိ လွ ု မ္ း ခ် တ္ ိ ထ ား ပါ တယ ္ ။ <html> <head> <script type="text/javascript" src="getrss.PHP Guide Book Moe Myint Shein JavaScript က ေနPHP page ကိ ု query လွ မ္ း ပိ ျ ႔ ု ပီ းေခၚ လိ က္ ု တဲ အ ခါ ႔ ေအာက္ ပါ အတ ိ င္ ု း ျ ဖစ္ ပြ ာ း ပါ တ ယ္ ။ 1. PHP က cd_catalog.xml file ရဲ ႕XML DOM object ကိ ု ဖန္ တီ း လိ က္ ု ပါ တယ ္ ။ 2.value)"> <option value="Google">Google News</option> <option value="MSNBC">MSNBC News</option> </select> </form> <p><div id="rssOutput"> <b>RSS Feed will be listed here. မွ န္ က န္ တဲ ႔ artist ပါ တဲ ႔ CD ကိ ေတ ြ ု သြ ႔ ား ပါ တယ ္ ။ 4.js"></script> </head> <body> <form> Select an RSS-Feed: <select onchange="showRSS(this. album အခ် က္ အ လက ္ ေတြ ကိ ု Output အေနနဲ ရျ ႔ ပီ း ေတာ႔ txtHint placeholder ဆ ီ ကိ လွ ု မ္ း ပိ လိ ႔ ု က္ ု ပါ တယ ္ ။ ေနာက ္ ထ ပ္ ဥပမာ တ စ္ ခု ျ ပီ း သြ ား ပါ ျ ပီ ။ဒီ ဟာ လ ည္ း ေပ် ာ္ စရာ ေက ာင္ း မယ ္ လိ ထ င္ ႔ ု ပါ တယ ္ ။ PHP and AJAX RSS Reader RSS Reader ကိ သံ ု း ု ျ ပီ း ေတ ာ ႔ RSS Feeds ေတ ြ ကိ ဖတ ္ ု လိ ရပါ ႔ ု တ ယ္ ။RSS ဆိ တာ ု က ေတာ႔ သတ င္ း ေတ ြ up to date အခ် က္ အလက ္ ေတ ြ ကိ ု ျ မန္ ျ မန္ ဆ န္ ဆ န္ သိ ရွ ေစတ ဲ ိ ဟ ာျ ႔ ဖစ္ ပါ တယ ္ ။ AJAX RSS Reader အခု ေအာက္ က ဥပမာမွ ာေတ ာ႔ webpage ကိ ုrefresh လ ု ပ္ စရာ မလ ိ ဘဲ ု နဲ ႔RSS ရဲ ႕content ေတ ြ ကိ ုload လု ပ္ ေပး တဲ ႔RSS reader တ စ္ ခု ကိ ု ေရး မွ ာ ျ ဖစ္ ပါ တယ ္ ။ ဒီ ဥပမာမွ ာ ေတ ာ ႔ HTML page တ စ္ ခု ၊JavaScript တ စ္ ခု နဲ ႔ PHP တစ္ ခု ပါ ၀င္ မွ ာျ ဖစ္ ပါ တ ယ္ ။ The HTML Form ဒီ ေဖာင္ ေလး မွ ာgetrss. artist elements (nodetypes=1) ေတ ြ အ ကု န္ လံ း ု က JavaScript က ေနပိ လိ ႔ ု က္ ု တ ာနဲ ႔ match ျ ဖစ္ တဲ ႔ အမည ္ ကိ ု loop ပတ္ ျ ပီ း ရွ ာပါ တယ ္ ။ 3.</b></div></p> </body> </html> က် ေနာ္ တိ ေတ ြ ႔ ု တဲ ႔ အတ ိ ႔ င္ ု း ပဲ ဒီ HTML page မွ ာdrop-down box တစ္ ခု နဲ ႔ HTML form တစ္ ခု ပါ ၀င္ ပါ တယ ္ ။ 68 Youth Dreams 68 .

php ဆ ိ တဲ ု ႔PHP file ေလး ကေတ ာ ႔ေအာက္ ပါ အတ ိ င္ ု း ပါ .open("GET".onreadystatechange=stateChanged xmlHttp.url.send(null) } function stateChanged() { if (xmlHttp. သူ က ေတာ႔ server page ေပါ ။ ႔ 69 Youth Dreams 69 . try { // Firefox.true) xmlHttp.getElementById("rssOutput") . } JavaScript code ကေနလ ွ မ္ း ေခၚ လိ က္ ု တဲ ႔getrss.js ဆ ိ တဲ ု ႔ JavaScript code ပဲ ျ ဖစ္ ပါ တယ ္ ။ var xmlHttp function showRSS(str) { xmlHttp=GetXmlHttp Object() if (xmlHttp==null) { alert ("Browser does not support HTTP Request") return } var url="getrss.. Safari xmlHttp=new XMLHttpRequest().innerHTML=xmlHttp.readyState==4 || xmlHttp.XMLHTTP").XMLHTTP"). } } return xmlHttp.0+. } catch (e) { // Internet Explorer try { xmlHttp=new ActiveXObject("Msxml2. } catch (e) { xmlHttp=new ActiveXObject("Microsoft.random() xmlHttp. Opera 8.readyState=="complete") { document.PHP Guide Book Moe Myint Shein user က drop down box ထ ဲ က ေန option တစ္ ခု ကိ ေရြ ု း လိ က္ ု တဲ အ ခါevent တ စ္ ႔ ခုစတ င္ ျ ဖစ္ ပါ တ ယ္ ။ အဲ ဒီ အ ခါ မွ ာ showRSS() ဆ ိ တဲ ု ႔ function က ိ လွ ု မ္ း ေခၚ ပါ တယ ္ ။ ေအာက ္ မွ ာပါ တဲ ႔rssOutput ဆိ တဲ ု ႔<div> ကေတ ာ ႔showRSS() function က ေန return ျ ပန္ လ ာတ ဲ ႔data ေတြ ကိ ု ေပၚ ေပး မယ္ ႔ placeholder အေနနဲ သံ ႔ း ု တာ ျ ဖစ္ ပါ တ ယ္ ။ The JavaScript ေအာက ္ က code ကေတာ႔ getrss.php" url=url+"?q="+str url=url+"&sid="+Math.responseText } } function GetXmlHttpObject() { var xmlHttp=null.

//get and output "<item>" elements $x=$xmlDoc->getElementsByTagName('item'). } $xmlDoc = new DOMDocument().msn. $channel_title = $channel->getElementsByTagName('title') ->item(0)->childNodes->item(0)->nodeValue. $item_title .PHP Guide Book Moe Myint Shein <?php //get the q parameter from URL $q=$_GET["q"]. $channel_link .com/id/3032091/device/rss/rss.google. "'>" . "</a>"). echo ("<p><a href='" .html က ိ ု run မယ္ ဆိ ရင္ ု ရပါ ျ ပီ ခင္ ဗ် ာ ။ 70 Youth Dreams 70 . } elseif($q=="MSNBC") { $xml=("http://rss.msnbc. $xmlDoc->load($xml). echo ($item_desc . $i<=2. "</p>").com/news?ned=us&topic=h &output=rss"). "</a>"). //find out which feed was selected if($q=="Google") { $xml=("http://news. } ?> JavaScript က ေနoption တ စ္ ခု လွ မ္ း ပိ လိ ႔ ု က္ ု တဲ အ ခါေအာက ္ ႔ ပါ အတိ င္ ု းအလု ပ္ လု ပ္ ပါ တ ယ္ ။ - ဘယ ္ RSS feed က ိ ေရြ ု း ထ ား တ ယ္ ဆိ တ ာPHP ကစစ္ ု ပါ တ ယ္ ။ - XML DOM object တ စ္ ခု ကိ ု ေရြ း ခ် ယ္ ထာ း တဲ ႔ RSS feed အတ ြ က္ ဖန္ တီ း လိ က္ ု ပါ တယ ္ ။ - RSS channel ထဲ က ေတြ ရွ ႔ လ ာတဲ ိ ႔ element ေတ ြ ကိ ု output ျ ပေပး ပါ တယ ္ ။ - RSS items ေတြ ထဲ က ပထ မဆံ း ု သံ း ု ခု က loop ပတ္ ေနျ ပီ း ေတာ႔ output ျ ပေပး ပါ တ ယ္ ။ အခု အ ခ် န္ ိ မွ ာrssreader. $item_desc=$x->item($i)->getElementsByTagName('description') ->item(0)->childNodes->item(0)->nodeValue. //output elements from "<channel>" echo("<p><a href='" . $channel_link = $channel->getElementsByTagName('link') ->item(0)->childNodes->item(0)->nodeValue. //get elements from "<channel>" $channel=$xmlDoc->getElementsByTagName('channel')->item(0). $item_link=$x->item($i)->getElementsByTagName('link') ->item(0)->childNodes->item(0)->nodeValue. $item_link . for ($i=0. echo ("<br />"). $channel_title . $channel_desc = $channel->getElementsByTagName('description') ->item(0)->childNodes->item(0)->nodeValue. echo("<br />"). "'>" . $i++) { $item_title=$x->item($i)->getElementsByTagName('title') ->item(0)->childNodes->item(0)->nodeValue. "</p>").xml"). echo($channel_desc .

txt ဆ ိ ျ ု ပီ း ေတ ာ႔ save ပါ မယ ္ ။poll က ရတယ ္ .js နဲ သိ ႔ မ္ း ပါ မယ္ ။ 71 Youth Dreams 71 .value)"> </form> </div> </body> </html> ဒါ ေလ း ကိ ု ajaxpoll. က ် ေနာ္ တိ ႔ ု Yes က ိ တ ခါvote လ ိ ု က္ ု ရင္ အေရွ ႕ က0က1ျ ဖစ္ သြ ား ပါ မယ ္ ။ The JavaScript JavaScript code ေတ ြ ကိ ေတ ာ ု ႔ poll.PHP Guide Book Moe Myint Shein PHP AND AJAX POLL ေအာက ္ က Ajax example မွ ာ web page က relode လ ု ပ္ စရာမလ ိ ဘဲ ု နဲ ႔result က ိ ုျ ပန္ ျ ပေပး ႏိ င္ ု တဲ ႔Poll တစ္ ခု ကိ ု ျ ပသသ ြ ား မွ ာျ ဖစ္ ပါ တ ယ္ ။ ဒီ ဥပမာမွ ာ လ ည္ းစာမ် က္ ႏွ ာေလး ခု ပါ ၀င္ ပါ မယ ္ ။ - HTML form တ စ္ ခု - JavaScript တ စ္ ခု - PHP page တ စ္ ခု နဲ ႔ - Yes.html ဆ ိ ျ ု ပီ းsave ထ ာ း လိ က္ ု ပါ တ ယ္ ။ သူ ရဲ ႔ ႕ အလု ပ္ လု ပ္ ပံ ေလး ု ကေတ ာ ႔<div> tag ထ ဲ မွ ာYes နဲ ႔ No ဆ ိ တဲ ု ႔ radio button ေလးႏွ စ္ ခု ပါ ၀င္ တဲ ႔ form ေလ း ရွ ိ ပါ တယ ္ ။ user က yes ဒါ မွ မဟု တ္ no က ိ ေရြ ု း လိ က္ ု တဲ အ ခါ ႔ မွ ာevent တ စ္ ခု အလ ု ပ္ လု ပ္ ပါ တယ ္ ။အဲ ဒီ event ျ ဖစ္ တဲ အ ခါ ႔ မွ ာgetVote() ဆိ တဲ ု ႔ function ကိ ေခၚ ု ျ ပီ းexecute လု ပ္ ပါ တ ယ္ ။getVote() function က ေနျ ပန္ လ ာတဲ ႔data ေတြ ကိ ုform မွ ာ replace ျ ပန္ လု ပ္ ပါ တယ ္ ။ The Text File text file ကိ ေတ ာ ု ႔ poll_result.js"></script> </head> <body> <div id="poll"> <h2>Do you like PHP and AJAX so far?</h2> <form> Yes: <input type="radio" name="vote" value="0" onclick="getVote(this. data ေတြ ကိ သိ ု မ္ း ဖိ ပဲ ႔ ု ျ ဖစ္ ပါ တ ယ္ ။ ေအာက ္ က ပံ စံ ု အ တိ င္ ု း သိ မ္ း မွ ာပါ ။ 0||0 ပထ မလာတ ဲ ႔ နံ ပါ တ္ က Yes votes ေတ ြ ကိ ု ကု ယ္ ိ စား ျ ပဳ ျ ပီ း ေတ ာ ႔ || ရဲ ႕ ေနာက္ က နံ ပါ တ္ က ေတာ႔ No votes ေတ ြ ကိ ကိ ု ယ္ ု စား ျ ပဳ ပါ တယ္ ။ဥပမာ . No result ေတ ြ ကု ိ သိ မ္ း ဖိ ႔ ု text file တစ္ ခု တိ ပါ ႔ ု ၀င္ ပါ တ ယ္ ။ The HTML Form အခု အ ရင္ ဆံ းက ေတာ႔ ု HTML စာမ် က္ ႏွ ာျ ဖစ္ ပါ တယ ္ ။ရိ း ု ရိ းHTML form တ စ္ ု ခု ပဲ ျ ဖစ္ ျ ပီ း ေတ ာ႔ JavaScript ဖိ င္ ု ကိ လွ ု မ္ း ျ ပီ းlink ခ် တ္ ိ ထ ား ပါ တ ယ္ ။ <html> <head> <script src="poll.value)"> <br />No: <input type="radio" name="vote" value="1" onclick="getVote(this...

url.readyState==4 || xmlHttp.onreadystatechange=stateChanged xmlHttp.php" url=url+"?vote="+int url=url+"&sid="+Math.responseText.open("GET". $content = file($filename).XMLHttpRequest) { objXMLHttp=new XMLHttpRequest() } else if (window.XMLHTTP") } return objXMLHttp } Yes ဒါ မွ မဟု တ္ No ကိ ု HTML form ထဲ မွ ာselect လု ပ္ လိ က္ ု တဲ အ ခါ ႔ getVote() function က ိ လ ာအလ ု ု ပ္ လု ပ္ ပါ တ ယ္ ။ အခု ေနာက္ ဆံ း ု ကေတ ာ ႔ JavaScript ထဲ က ေနလွ မ္ း ေခၚ ထာ း တဲ ႔ poll_vote. $no = $array[1].php ပဲ ျ ဖစ္ ပါ တ ယ္ ။ <?php $vote = $_REQUEST['vote']. innerHTML=xmlHttp.txt".readyState=="complete") { document. } } function GetXmlHttpObject() { var objXMLHttp=null if (window. //put content in array $array = explode("||".ActiveXObject) { objXMLHttp=new ActiveXObject("Microsoft.getElementById("poll").random() xmlHttp.true) xmlHttp. if ($vote == 0) { 72 Youth Dreams 72 .PHP Guide Book Moe Myint Shein var xmlHttp function getVote(int) { xmlHttp=GetXmlHttpObject() if (xmlHttp==null) { alert ("Browser does not support HTTP Request") return } var url="poll_vote. $yes = $array[0]. $content[0]).send(null) } function stateChanged() { if (xmlHttp. //get content of textfile $filename = "poll_result.

gif" width='<?php echo(100*round($yes/($no+$yes).ျ ပီ း ရင္ run ၾ ကည ္ လိ ့ က္ ု ေပါ ႔ …။:P 73 Youth Dreams 73 . $fp = fopen($filename. ?>' height='20'> <?php echo(100*round($yes/($no+$yes). fputs($fp."||"."w"). No (1) စတဲ တ န္ ႔ ဖိ း ု ေတြ ကိ ု JavaScript က ေနလ ွ မ္ း ပိ ႔ ု ေပး ပါ တ ယ္ ။အဲ ဒီ ေနာက္ မွ ာေတာ႔ - poll_result. ?>% </td> </tr> <tr> <td>No:</td> <td> <img src="poll.html က ိ ု run လိ က္ ု မယ္ ဆိ ရင္ ု ေမွ ် ာ လ င္ ္ ထ ား ့ သလ ိ ပဲ ု Do you like PHP & AJAX so far? ဆိ တဲ ု ႔ poll ေလ း ကိ ု Yes.$insertvote).html ဖိ င္ ု ကိ ု လိ သ လိ ု ျ ု ပင္ ျ ပီ း ေတာ႔ ဥပမာDo you like PHP & AJAX so far ဆိ တဲ ု ေနရာ ႔ မွ ာ နင္ ငါ ကိ ႔ ခ် ု စ္ လ ား … Yes ေနရာမွ ာ ခ် စ္ တ ယ္ လိ ႔ ထား ု လိ က္ ု No ေနရာ မွ ာ Yes လိ ေျ ႔ ု ပာင္ း ျ ပီ း ေရး လိ က္ ု ေပါ ႔ . ?> <h2>Result:</h2> <table> <tr> <td>Yes:</td> <td> <img src="poll.PHP Guide Book Moe Myint Shein $yes = $yes + 1. } if ($vote == 1) { $no = $no + 1. ?>% </td> </tr> </table> Yes (0) .$no. } //insert votes to txt file $insertvote = $yes.2)).2)).2)).gif" width='<?php echo(100*round($no/($no+$yes).txt file ရဲ ႕content က ိ ယူ ု ပါ တ ယ္ ။ - အဲ ဒီ contact ေတြ ကိ ု variable ေျ ပာင္ း ျ ပီ း ေတာ႔ variable တ စ္ ခု ကိ ု JavaScript ကပိ လာ ႔ ု တဲ အ တိ ႔ င္ ု းတ စ္ တိ း ု ပါ တယ ္ ။ - အဲ ဒီ တ စ္ တိ း ု ျ ပီ း တဲ ႔ result က ိ ု poll_result.2)). ?>' height='20'> <?php echo(100*round($no/($no+$yes). fclose($fp).txt ဖိ င္ ု မွ ာေရး လိ က္ ု ျ ပီ းupdate လ ု ပ္ ပါ တ ယ္ ။ - poll result ရဲ ႕graphical representation ကိ ထု ု တ္ ျ ပလ ိ က္ ု ပါ တယ ္ ။ အခု အ ခ် န္ ိ မွ ာajaxpoll. No button ႏွ စ္ ခု နဲ ေတြ ႔ ရမွ ႔ ာျ ဖစ္ ပါ တ ယ္ ။ajaxpoll.

။MySQL ရဲ ႕User အခြ င္ အေရး ့ ေတြ ကိ ု အနည္ း ငယ္ ေလ ာ က္ ျ ဖစ္ ျ ဖစ္ နား လည ္ ဖိ လိ ႔ ု အ ပ္ ု ပါ တ ယ္ .PHP Guide Book Moe Myint Shein Chapter 7.. PHP My Admin ဆိ တဲ ု ႔ tool ကိ အသ ံ ု း ု ျ ပဳ ျ ပီ းDatabase ေတြ နဲ ႔ အလ ု ပ္ လု ပ္ ရမွ ာျ ဖစ္ ပါ တ ယ္ . ။User အသစ္ တ စ္ ေယာက္ ကိ ု SQL Statement က ိ သံ ု း ု ျ ပီ း ဖန္ တီ း ႏိ ု င္ သ လိ ု ဒါ မွ မဟ ု တ ္ PHP Admin ထဲ မွ ာအသင္ ပါ ့ တဲ ႔ Create New User ကိ ႏွ ု ပ္ ိ ျ ပီ း ေတာ႔ လဲ လြ ယ္ ကူ စြ ာဖန္ တီ း ႏိ င္ ု ပါ တယ ္ ..။ Creating a New User Database ေတ ြ နဲ ႔ အလ ု ပ္ လု ပ္ ေတ ာ မယ ္ ႔ ဆိ ရင္ ု http://localhost/phpmyadmin/ ဆ ိ ျ ု ပီ း ၀င္ လိ က္ ု ပါ …... PHP MyAdmin Basic က် ေနာ္ တိ အ ေနနဲ ႔ ု ႔ PHP.။ အလိ အ ေလ် ု ာ က္ အ ေနနဲ ႔ root ဆိ တဲ ု ႔ username နဲ ႔ password မပါ ဘဲ ဖန္ တီ း ထား ေပး မွ ာ ျ ဖစ္ ပါ တယ ္ .။ http://localhost/phpmyadmin/ လ ိ ႔ ု Web Browser မွ ာရိ က္ ု တဲ အ ခါေအာက္ ႔ က ေနရာကိ ု ေရာ က္ လ ာမွ ာ ျ ဖစ္ ပါ တယ ္ … အဲ ဒီ မွ ာ Privileges ဆ ိ တဲ ု ေနရာ ႔ ကိ ၀င္ ု လိ က္ ု ပါ .။အခု Database ေတ ြ နဲ ႔ က် ေနာ္ တိ ႔ ု စတ င္ အလ ု ပ္ လု ပ္ ေတ ာ႔ မွ ာျ ဖစ္ လိ ႔ ု အမွ န္ တ ကယ ္ username နဲ ႔ password တစ္ ခု ကိ ု ဖန္ တီ း သင္ ပါ ့ တ ယ္ .. MySQL နဲ ႔ Apache အား လံ း ု ပါ ၀င္ ျ ပီ း သားPackage ျ ဖစ္ တဲ ႔ XAMPP ကိ အသ ံ ု း ု ျ ပဳ ေနတာျ ဖစ္ ပါ တ ယ္ ..။ 74 Youth Dreams 74 .

အဲ ဒီလင္ ေလး ့ ကိ ု ႏွ ပ္ ိ ျ ပီ းuser အသစ္ ကိ ဖန္ ု တီ း ႏိ င္ ု ပါ တယ ္ ။ 75 Youth Dreams 75 ..PHP Guide Book Moe Myint Shein Privileges ဆ ိ တဲ ု ေနရာကိ ႔ ၀င္ ု လိ က္ ု တဲ အ ခါေအာ ႔ က္ ပါ တိ င္ ု းCreate a new User ဆ ိ တ ာက ိ ု ေတ ြ ု ပါ ႔ မယ ္ .

.. you have added a new user ဆိ တဲ ု ႔Message ျ ပမွ ာ ျ ဖစ္ ပါ တယ ္ . ဒါ ဆိ ု ရင္ ေတ ာ႔ user အသ စ္ ကိ ဖန္ ု တီ း ျ ပီ း သြ ား ပါ ျ ပီ .PHP Guide Book Moe Myint Shein က် ေနာ္ အ ေနနဲ ႔ ႔Username ေနရာမွ ာ moemyintshein host ကိ ုlocalhost နဲ ႔password က ိ ုmoemyintshein လိ ပဲ ႔ ု ေပး လိ က္ ု ျ ပီ း ေတ ာ႔Global privileges မွ ာ Check All လ ု ပ္ ေပး ပါ တယ္ ..။ ခု နက ဆိ တဲ ု ႔ က် ေနာ တိ ္ ႔ Server မွ ု ာ user အသ စ္ ဖန္ တီ း ထာ း တဲ အ တြ ႔ က္ အခု တ စ္ ခါ ေတ ာ ႔ SQL statement ကိ သံ ု း ု ျ ပီ းusername ကိ ု moemyintshein1 password က ိ ု moemyint12345 လိ ေပး ႔ ု ျ ပီ း အသစ္ ထ ပ္ ဖန္ တီ း ပါ မယ္ ခင္ ဗ် ာ… 76 Youth Dreams 76 .။ အကယ ္ လိ ႔ ကိ ု ယ္ ု အ ေနနဲ ႔ ႔ အစက တည ္ း က moemyintshein ဆိ တဲ ု ႔ နာမည္ နဲ ႔ localhost SQL statement ကိ ပဲ သ ံ ု း ု ျ ပီ း ဖန္ တီ း မယ ္ ဆိ ု ရင္ လဲ ရပါ တ ယ္ .။ အလိ အ ေလ် ု ာ က္ ဖန္ တီ း ေပး ျ ပီ း ေတ ာ ႔execute အဲ ဒီ အ ခါ မွ ာ ေအာက္ ပါ အတ ိ င္ ု း SQL Statement ေတြ ကိ ု လု ပ္ ထာ း ကာ.... ျ ပီ း တဲ ႔အခါ Go ကိ ႏွ ု ပ္ ိ ျ ပီ း ေတာ႔user အသစ္ ကိ ု ဖန္ တီ း လိ က္ ု ပါ တယ ္ ခင္ ဗ် ာ .

PHP Guide Book

Moe Myint Shein

အထက ္
ပါ
ပံ
အ တိ

င္

းPHP Admin main page ရဲ
႕ညာဘက ္
ေထာင္
အ ေပၚ

နား
ေလ း
မွ
ာ button ငါ

ခု
ရွ
တဲ

အ နက ္အလ ယ္

က
SQL ဆ ိ
တာ

ေလ း
ကိ
ုႏွ
ပ္

လိ
က္

တဲ
အ ခါသ ူ

ေအာက ္

မွ
ာ SQL query က ိ
ုexecute လ ု
ပ္
ႏိ
င္

တဲ
႔pop up page တ စ္
ခု
တတ ္
လ ာပါ
တ ယ္
.. အဲ
ဒီ
အ ထဲ
မွ
ာက်
ေနာ္
က
GRANT ALL ON *.* TO moemyintshein1@localhost IDENTIFIED BY "moemyint12345";
လိ
ရိ


က္


ပီ
းGo က ိ
ႏွ

ပ္

လိ
က္

တဲ
အ ခါlocalhost ဆ ု

တဲ

႔Server မွ
ာmoemyint12345 ဆ ု
တဲ

႔password နဲ

moemyintshein1
ဆိ
တဲ


user အသ စ္
တ စ္
ေယာက ္
ကိ
လ ည္

းထပ္
ဖန္
တီ

လိ
က္


ပီ

ဖစ္
ပါ
တ ယ္

အခု
အ ခ်
န္

မွ
ာ privileges ထဲ
မွ
ာ ၀င္

က ည္
တဲ

အ ခါေအာက ္

ပါ
တိ
င္

း အစက root ပဲ
ရွ
ရာကေန user အသ စ္

ႏွ
စ္
ေယာက္
ပါ
ရွ
ေနမွ

ာျ
ဖစ္
ပါ
တ ယ္
..။

user အသစ္
ဖန္
တီ


ပီ

တဲ
ေနာ

က္
မွ
ာPHP MyAdmin ထ ဲ
မွ
ာTable ေဆာက ္
ရေအာင္
ဗ်
ာ။
Database အရင္
ေဆ ာ
က္
ဖိ
လိ



ပါ
တယ ္Home ပံ
စ့

ေလး
ကိ
ုႏွ
ပ္

လိ
က္

ရင္Databases ဆိ
တ ာ သူ

ရဲ

႕ menu ေတ ြ
ထဲ
မွ

ရွ
ာလ ိ
ေတြ


ပါ

တ ယ္
။ အဲ
ဒီ
မွ
ာ Create New Database ဆ ိ
တဲ

ေအာက္

ေလ း
မွ
ာ ေဆာက ္
ႏိ
င္

ပါ
တယ ္
။ Database နာမည္
ကိ

mydomain လ ိ
ေပး


လိ
က္

ပါ
တယ ္
။ Collation ဆု
တဲ

အ ထဲ

မွ
ာေတာ႔အဆ င္
ေျ
ပမွ

ကိ
ေပး

ေပါ

။က ်
ေနာ
က utf8_general_ci

နဲ

ေဆ ာက္
လိ
က္

တ ယ္


ပီ

တဲ
ေနာက္

မွ
ာေအာက ္
ပါ
ပံ
အ တိ

င္


ေပၚ
လ ာျ
ပီ

ေတ ာ႔
က်
ေနာ

က mydomain ဆ ိ
တဲ


အဲ
ဒီ
database ထဲ
မွ
ာpeople ဆ ိ
တဲ


table
ကိ

field ေလ း
ခု
ေပး

ပီ
းGo ကိ
ႏွ

ပ္


ပီ
းေဆာက ္
လိ
က္

ပါ
တယ ္

77

Youth Dreams

77

PHP Guide Book

Moe Myint Shein

Go ကိ
ႏွ

ပ္


ပီ

ေဆာက္
လိ
က္

တဲ
အ ခါ

mydomain ဆ ု
တဲ


database ထ ဲ
မွ
ာpeople ဆ ိ
တဲ


table ေရာက ္
ေနပါ

ပီ
ေအာက္
ပါ
အတ ိ
င္



ဖည္


ပီ
းtable က ိ

save လ ု
ပ္
လု
က္

ပါ
မယ ္

PHP MyAdmin ထ ဲ
မွ

ေတ ာ႔
အခု
လိ
သြ

ား

ဖည္

မယ ္

78

Youth Dreams

78

PHP Guide Book

Moe Myint Shein

ဒီ
အတ ိ
င္


ေတ ြ

ဖည္


ပီ

ေတ ာ

save လ ိ
က္

ပါ
တ ယ္

length value က input character ေတ ြ
ရဲ
႕လက ္
အ ခံ
ႏိ
င္

ဆံ
းအရွ

ည္
ကိ

သတ ္
မွ
တ္
ေပး
တာျ
ဖစ္
ပါ
တ ယ္
။Type အတ ြ
က္
ထာ

လိ


ရတ ာေတြ
က လည္
း အမ်



ကီ

ပါ
။ က်
ေနာ္
ဒီ
မွ

ေလ ွ

ာက္
ထ ည္
ထ ား

တာ
ပါ
။efficient ျ
ဖစ္
ခ်
င္
မွ

ဖစ္
မယ ္
။ PHP MyAdmin ရဲ

function တ စ္
ခ်



ကိ

အေျ
ခခံ
ေလာက္
သံ


တ တ္
ေအာင္
ဒီ
ဟာ
ကိ

ထည ္
ေပး

ထာ

တာ
ပါ
။ျ
ပီ

ရင္
Drop ကိ
သံ




ပီ
းအခ်

န္
မေရြ
းဒီ
table ေတြ
ဖ်
က္
လိ
ရပါ


တယ ္

Primary Key အေနနဲ

သံ


မယ္
႔id fileld ကိ
ုauto_increment ေပး
ထာ

ပါ
တ ယ္
။record ေတ ြ
ကိ
ုInput ထပ္
ထည ္
တဲ

အ ခါ

က်
ေနာ္
တိ


ရိ
က္

ရိ
က္

ေနစရာမလိ
ေတ ာ

ဘူ


ေပါ
။Default က ိ

ေတာ႔

0 ေပး
လိ
က္

ပါ
တယ ္

အဲ
တ န္
ဖိ


ေတ ြ
အား
လံ


ထည္


ပီ
းsave လု
ပ္
လိ
က္

ေတ ာ

ေအာက္
ပါscreen ေပၚ
လ ာပါ
တယ ္

79

Youth Dreams

79

PHP Guide Book Moe Myint Shein သင္ table ဖန္ တီ း တတ ္ ပါ ျ ပီ ။အဲ ဒီ table ကိ ျ ု ဖစ္ ေစတ ဲ ႔ SQL command ေတြ ကိ လ ည္ ု းေတြ ႔ ရမွ ာပါ ။အခု ေတာ႔ သ င္ သိ ခ် င္ မွ သိ ပါ လိ မ္ မယ္ ႔ ။ ဒါ ေပမယ ္ ႔ ဘယ ္ ဟ ာကိ ုဘာ ကု ဆိ ိ လိ ု တ ယ္ ု ဆိ တ ာ PHP ု Database အခန္ း ကိ ု ေလ ႔ လ ာလ ိ ရင္ ု ေတာ႔ သေဘာေပါ က္ လ ာမွ ာပါ ။ Table ထ ဲ ကု ိ Data ေတ ြ ထည ္ ရေအာ ့ င္ ဗ် ာ။ Insert ဆိ တ ာအေပၚ ု မွ ာေတြ မယ ္ ႔ ထ င္ ပါ တ ယ္ ။ႏွ ပ္ ိ လိ က္ ု ၾ က ရေအာင္ ။ ျ ပီ း တဲ အ ခါ ႔ အခု လိ ပဲ ု ျ ဖည္ ထ ည္ ့ ႏိ ့ င္ ု ပါ တ ယ္ ။ သူ ရဲ ႔ ႕အေပၚ မွ ာရွ တဲ ိ ႔ tab ေတ ြ ကိ လိ ု က္ ု သ ာႏွ ိ ပ္ ၾ ကည ္ ပါ ့ ။ 80 Youth Dreams 80 .

PHP Guide Book Moe Myint Shein Insert ကိ ျ ု ပန္ ႏွ ပ္ ိ ျ ပီ းေဒတာေတ ြ field တ စ္ ခု စီ အတ ြ က္ ထ ပ္ ထ ပ္ ျ ဖည ္ သြ ့ ား ႏိ င္ ု ပါ တယ ္ ။ ေအာက ္ နား ေလး မွ ာသ ူ ႔ setting ေတြ ခ် န္ ိ လိ ရတ ာ ႔ ု ရွ ပါ ိ တယ ္ ။ တခု ျ ဖည ္ ျ ့ ပီ း လိ ႔ ု save လု ပ္ တိ င္ ု းSQL code ေတြ ပါ တဲ ႔ window လည ္ း ေပၚ လာပါ တယ္ ။ id column က auto increment ျ ဖစ္ တဲ အတ ြ ႔ က္ ဘာမွ မထည္ ့ ေပး ပါ ဘူ း ။ ေအာက ္ ပါ ပံ စံ ု အ တိ င္ ု း ျ ဖစ္ သြ ာ း ေအာ င္ ျ ဖည ္ ေပး ့ ၾ ကည ္ ပါ ့ လာ း ။ အဲ လိ ျ ု ဖစ္ ျ ပီ လ ား မျ ဖစ္ ေသ း ဘူ း လား ဆိ တ ာ Browse Tab က ိ ု ၀င္ ု ျ ပီ းၾ က ည္ ႏိ ့ င္ ု ပါ တယ ္ ခင္ ဗ် ာ ။ အဲ ဒီ မွ ာေဘး နာ း က ခဲ တံ ပံ နဲ ု ႔ ဟာေလး က တ စ္ ခု ခ် င္ း ဆီ ကိ ု edit ေပး လု ပ္ ျ ပီ း ေတာ႔ အမိ ႈ က္ ပံ း ု ေလး ကေတ ာ ႔ Delete ေပး လု ပ္ တာ ေလ း ပါ ။ အခု ဘ ယ္ လိ ု back up လု ပ္ လဲ ေလ႔ လ ာရေအာင္ ။ Database ထဲ ကိ သြ ု ား ရေအာင္ ဒီ ဘက ္ ဘယ ္ ဘက ္ ေပါ ႔ အခု database က ေတ ာ႔ mydomain ေပါ ။ ႔ အေပၚ က Tab ေတြ ထဲ က Export က ိ ေရြ ု း မယ ္ ။ 81 Youth Dreams 81 .

sql ဆ ိ တဲ ု ႔ဖိ င္ ု ေလး ကိ ုZip နဲ ရပါ ႔ တယ ္ ခင္ ဗ် ာ ။အဲ ဒါbackup ပါ ပဲ ။ အခု ေလ ာက္ ဆိ ုေလ ႔ လ ာသူ အ ေနနဲ ႔Database ေဆာက္ တတ္ ျ ပီ ။table ေတြေဆာက ္ တတ ္ ျ ပီ ။fileds ေတြ ဖန္ တီ း တတ ္ ျ ပီ း records ေတြ ထ ဲအခ် က္ အ လ က္ ထ ည္ တ တ္ ့ တ ယ္ ။record က ိ ျ ု ပန္ ၾ က ည္ တ တ္ ့ တ ယ္ ။edit လ ု ပ္ တ တ္ တယ ္ ။ဖ် က္ တတ ္ တယ ္ ေနာက ္ ဆံ း back up ပါ ု လု ပ္ တတ ္ ပါ ျ ပီ ။ အဲ ဒါ အေျ ခခံ ပါ ပဲ ။ က် န္ တ ာေတြ ကိ ုတျ ဖည ္ း ျ ဖည္ း နဲ ႔ဆက ္ ေလ႔ လာ သြ ား ပါ ခင္ ဗ် ာ ။ က် ေနာ္ က ေတ ာ ႔ ဒီ ေလ ာ က္ ပဲ အစျ ပဳ ေပး လိ က္ ု ပါ တ ယ္ ။ 82 Youth Dreams 82 .PHP Guide Book Moe Myint Shein အခု က ေတာ႔ people တ စခု ပဲ ေဆာက္ ထာ း ေတ ာ ႔ သူ ပဲ ရွ တယ္ ိ အဲ ဒီ အက ြ က္ ေလ း ထဲ မွ ာexport လိ ခ် ု င္ တဲ ႔ backup လ ု ပ္ ခ် င္ တဲ ႔ table ေတ ြ ကိ ထ ပ္ ု ေရြ း ႏိ င္ ု တ ယ္ ။ က် ေနာ္ က ေတ ာ ႔ျ ပီ း တဲ အ ခါ save ႔ as file ကိ ု checked လု ပ္ ျ ပီ း ေတာ႔ zipped ကိ ထ ပ္ ု ေရြ း ျ ပီ း ေတာ႔GO လု ပ္ လိ က္ ု ပါ တ ယ္ ။အဲ ဒီ အ ခါေဒါ င္ း လု ပ္ ဆြ ရပါ ဲ ျ ပီ mydomain.

My SQL Database နဲ ႔ Apache Web Server တိ ကိ ႔ ု ုတစ္ ခု စီ သီ း သ န္ ႔ သြ င္ း ျ ပီ း ခ် တ္ ိ ဆ က ္အသ ံ း ု ျ ပဳ သ င္ ေပမယ ္ ့ ႔ဒီ စာအု ပ္ ရဲ ႕ ရည္ ရႊ ယ္ ခ် က္ က ျ မန္ ျ မန္နဲ ႔လြ ယ္ လြ ယ ္PHP ရဲ ႕ အေျ ခခံ ေတ ြ ကိ ု နား လည ္ ေစခ် င္ တာ ျ ဖစ္ တဲ အ တြ ႔ က ္ XAMPP ကိ သ ာ အဆင္ ု သ င္ ့ Install လု ပ္ ျ ပီ း ေလ ႔ လ ာၾ က တာျ ဖစ္ ပါ တယ္ . firstName. Orders).PHP and Database ကၽ န္ ႊ ေတ ာ တိ ္ အ ေနနဲ ႔ ု ႔တက ယ္ ဆိ ုPHP..။ သင္ ခန္ း စာေတ ြ မွ ာလ ြ ယ္ ကူ ေစဖိ အ တြ ႔ ု က ္က် ေနာ္ တိ ရဲ ႔ ု ႕PHP ကိ ုေလ ႔ လ ာရာမွ ာ… အသံ း ု ျ ပဳ ေနတဲ ႔XAMPP နဲ ႔သူ ႔ ရဲ ႕တ ြ ပါ ဲ တဲ ႔ PHP Myadmin စတဲ ႔ tool ေတ ြ နဲ ႔ ပါ တ္ သ တ္ ျ ပီ းအေရွ ႕ က အခန္ း မွ ာအနည ္ း ငယ ္ ေလ႔ လ ာခဲ ျ ႔ ပီ းျ ဖစ္ ပါ တ ယ္ ။ PHP Database PHP MySQL Introduction What is MySQL? MySQL ဆ ိ တ ာက ေတ ာ႔ ု ေပၚ ပ် ဴ လာအျ ဖစ္ ဆံ းopen source database system ပဲ ု ျ ဖစ္ ပါ တယ္ ။MySQL ဆိ တ ာdatabase ပါ ု ။ MySQL ထ ဲ မွ ာ ေဒတ ာေတြ ကိ ုtables လိ ေခၚ ႔ ု တဲ ႔database objects ေတြ ထဲ မွ ာသ ိ မ္ း ဆ ည္ း ပါ တ ယ္ ။table ဆ ိ တ ာက ေတ ာ႔ ု ဆက ္ ႏြ ယ္ ေနတဲ ႔ေဒတ ာ ေတ ြ စု ေပါ င္ း ပါ ၀င္ တဲ ႔column ေတ ြrows ေတြ ပါ ၀င္ တဲ အ စု ႔ အ ေ၀း တ စ္ ခု ပါ ။အခု အ ခ် န္ ိ မွ ာ Database ရဲ ႕ အေျ ခခံ ေလ း နည ္ း နည ္ း ကိ ု နား လ ည္ ေအာင္ ၾ ကည ္ ၾ ့ က ရေအာင္ လာ း ..PHP Guide Book Moe Myint Shein Chapter 8. Address နဲ ႔ City) ဆ ိ ျ ု ပီ း ေတာ႔ ေလ း ခု ပါ ၀င္ ပါ တယ္ ။ Queries query ဆိ တ ာကေတ ာ ု ႔ ေမး ခြ န္ းဒါ မွ မဟ ု တ္ ေတ ာင္ း ဆိ မႈ ု လု ေျ ႔ ိ ပာႏိ င္ ု ပါ တ ယ္ ။ ေအာက ္ က query ေလ း ကိ ၾ ု ကည ္ ပါ ့ ။ SELECT LastName FROM Persons ဒီquery ေလ း က Persons table ထဲ က LastName ဆိ တဲ ု ႔column ထဲ က အခ် က္ အ လ က္ ေတ ြ အား လံ ကိ ု ေရႊ ု း ထု တ္ ေပး မွ ာ ျ ဖစ္ ပါ တ ယ္ ။ေအာက္ က ပံ စံ ု အ တိ င္ ု း ထြ က္ လ ာပါ မယ ္ ။ Create a Connection to a MySQL Database 83 Youth Dreams 83 .။ Database Tables database တ စ္ ခု မွtable တစ္ ခု ဒါ မွ မဟ ု တ ္အမ် ား ၾ ကီ း ပါ ၀င္ ပါ တယ္ ။table တ စ္ ခု စီ မွ ာ အမည္ ရွ ပါ ိ မယ ္ဥပမာ (Customers. Table ေတြ မွ ာrows လိ ေခၚ ႔ ု တဲ ႔ records ေတြ ပါ ၀င္ ပါ တယ ္ ။ ေအာက္ က ဥပမာက ေတာ႔ Persons လိ ေခၚ ႔ ု တဲ ႔ table ရဲ ႕ ဥပမာေလး ပါ ။ ဒီ table မွ ာဆ ိ ရင္ ု လူ တ စ္ ေယာက ္ အ တြ က္ တ စ္ ခု စု စု ေပါ င္ းသံ း ု ခု records (rows) သံ း ု ခု နဲ ႔ column(LastName.

"password")."user". script ထဲ မွ ာေနာ က္ ပိ င္ ု း မွ ာျ ပန္ လ ည္ း ေခၚ အသ ံ း ု ျ ပဳ ဖိ အ တြ ႔ ု က္ ပါ ။အက ယ္ ၍ connection fail ျ ဖစ္ ခဲ ရင္ ႔ ေတာ႔ die ကိ အလ ု ု ပ္ လု ပ္ ပါ မယ ္ ။ <?php $con=mysql_connect("localhost".password). mysql_error()).."abc123"). if (!$con) { die('Could not connect:' > mysql_error()). } // some code mysql_close($con). ?> PHP MySQL Create Database and Tables Create a Database MySQL မွ ာdatabase တစ္ ခု ကိ ု ဖန္ တီ း ဖု အတ ြ ႔ ိ က္ CREATE DATABASE statement ကိ အ သံ ု း ု ျ ပဳ ပါ တ ယ္ ။ Syntax CREATE DATABASE database_name အခု က PHP tutorial ျ ဖစ္ တဲ အ တြ ႔ က္ လိ အ ပ္ ု သ ေလာက ္ database အပိ င္ ု း ကိ ပဲ ု ေရး မွ ာျ ဖစ္ ပါ တယ ္ .။တ တ္ ႏိ င္ ု သ ေလာက္ ေတာ႔ SQL ကိ လ ည္ ု းထည ္ ေရး ့ ေပး ထား ပါ တယ ္ ။သ ီ း ျ ခာ းSQL က ိ ထ ပ္ ု ေလ ႔ လ ာႏိ င္ ု ရင္ လ ည္ း ေကာင္ း ပါ တ ယ္ ။ 84 Youth Dreams 84 . } //some code ?> PHP Script ဆံ း ု သြ ာ း တဲ အခါ ႔ မွ ာ connection အလ ိ အ ေလွ ု ် ာက ္ပိ တ္ သြ ား ပါ တယ ္ ။ၾ ကိ ဳ ပိ တ္ ခ် င္ ရင္ ေတ ာ ႔mysql_done() fucntoin က ိ သံ ု း ု ႏိ င္ ု ပါ တ ယ္ ။ <?php $con = mysql_connect("localhost". ေအာက ္ က code ထဲ မွ ာဆိ ရင္ ု က် ေနာ္ တိ အ ေနနဲ ႔ ု ႔ connection က ိ ု ($con) ဆ ိ တဲ ု ႔ variable ေလး ထဲ မွ ာသ ိ မ္ း ပါ တယ္ .."peter".username. if (!$con) { die('Could not connect: ' .PHP Guide Book Moe Myint Shein database တ စ္ ခု ထဲ က data ေတ ြaccess မလ ု ပ္ ႏိ ု င္ ခင္ မွ ာပဲdatabase အတ ြ က ္connection ကိ ဖန္ ု တီ း ေပး ရပါ မယ္ ။PHP မွ ာေတ ာ ႔ mysql_connect() function က ိ သံ ု း ု ျ ပီ း လု ပ္ ႏိ င္ ု ပါ တယ္ ။ Syntax mysql_connect(servername.

} if (mysql_query("CREATE DATABASE my_db". } else { echo "Error creating database: " . … ) အခု လိ ပံ ု စံ ု ပဲ ျ ဖစ္ ပါ တ ယ္ ။SQL အေၾ ကာ င္ းသင္ ခ် င္ ရင္ SQL Tutorial က ိ ေလ႔ ု လ ာပါ ခင္ ဗ် ာ။ PHP ထဲ မွ ာထည ္ သံ ့ း ု ဖိ အ တြ ႔ ု က ္mysql_query() function ထ ဲ ကိ ု CREATE TABLE statement က ိ ေပါ ု င္ း ထ ည္ ျ ့ ပီ းexecute လု ပ္ မွ ာျ ဖစ္ ပါ တ ယ္ ။ ဥပမာ။။ ေအာက ္ ပါ ဥပမာ မွ ာ Persons ဆိ တဲ ု ႔table တ စ္ ခု ကိ ဖန္ ု တီ း ျ ပီ း ေတ ာ ႔သူ မွ ႔ ာ FirstName. if (!$con) 85 Youth Dreams 85 ."moemyintshein")."moemyintshein")."root".$con)) { echo "Database created". mysql_error(). mysql_error()). if (!$con) { die('Could not connect: ' . column_name3 data_type.PHP Guide Book Moe Myint Shein အထက ္ ပါစာေၾ ကာင္ း ကိ ုexecute လု ပ္ ဖိ အတ ြ ႔ ု က ္ mysql_query() function ကိ အသ ံ ု း ု ျ ပဳ ရပါ မယ ္ ။ဒီfunction က ေတ ာ႔ MySQL connection ဆီ ကိ ု query ဒါ မွ မဟု တ္ command တ စ္ ခု ပိ ဖိ ႔ ု အတ ြ ႔ ု က္ အသ ံ း ု ျ ပဳ ရတ ာ ပါ ။ ေအာက ္ ပါ ဥပမာ က ေတာ႔ my_db လ ိ ေခၚ ႔ ု တဲ ႔ database တစ္ ခု ကိ ု ဖန္ တီ း တာပါ ။ <?php $con = mysql_connect("localhost". colomn_name2 data_type. LastName နဲ ႔Age ဆိ တဲ ု ႔ Colomn သံ း ု ခု ပါ ၀င္ မွ ာ ျ ဖစ္ ပါ တယ ္ ။ <?php $con = mysql_connect("localhost"."user". } mysql_close($con). ?> Table တ စ္ ခု တ ည္ ေဆ ာ က္ ျ ခင္ း CREATE TABLE statement ကိ သံ ု း ု ျ ပီ း ေတ ာ ႔ MySQL မွ ာtable တစ္ ခု ကိ တည ္ ု ေဆာက္ ရပါ တယ ္ ။သူ ရဲ ႔ ႕syntax က ေတ ာ႔ CREATE TABLE table_name ( colomn_name1 data_type.

LastName varchar(15).$con). Age int )".table တစ္ ခု ကိ ုမဖန္ တီ း ခင္ မွ ာ database ကိ ေရြ ု း ေပး ရပါ တယ္ ။ mysql_select_db() ဆိ တဲ ု ႔function ကိ သံ ု း ု ျ ပီ း ေတ ာ ႔database ကိ ေရြ ု း ေပး ႏိ င္ ု ပါ တ ယ္ ။varchar type ကိ သံ ု း ု ျ ပီ း ေတ ာ ႔database field တ စ္ ခု ကိ ု ဖန္ တီ း တဲ အ ခါ ႔ မွ ာ အဲ ဒီfiled ရဲ ႕maximum length ဥပမာ varchar(15) ဆ ိ ျ ု ပီ း ေတ ာ ႔သတ ္ မွ တ္ ေပး ရပါ မယ္ ။ data type ကေနျ ပီ း ေတာ႔ဒီ column ကက ိ င္ ု တြ ယ္ ႏိ င္ ု တဲ ႔ data အမ် ဳ ိ း အစား ကိ သတ ္ ု မွ တ္ ေပး တာ ျ ဖစ္ ပါ တယ ္ ။ Primary Keys and Auto Increment Fields table တစ္ ခု ထဲ မွ ာရွ တဲ ိ ႔rows ေတ ြ ကိ ုခြ ျ ဲ ခမ္ း စိ တ္ ျ ဖာႏိ င္ ု ဖိ အတ ြ ႔ ု က ္primary key တ စ္ ခု ကိ ုအသ ံ း ု ျ ပဳ ရပါ တ ယ္ ။primar y key တစ္ ခု စီ ဟ ာ table ထဲ မွ ာ တစ္ ခု ထည ္ း ရွ ိ ရပါ မယ္ ။ primary key ဟ ာ null (ဘာမွ မရွ တဲ ိ တ န္ ႔ ဖိ း ု ) မျ ဖစ္ ရပါ ဘူ း ဘာျ ဖစ္ လိ လ ည္ ႔ ု း ဆိ ေတ ာ႔ ု database engine အေနနဲ ႔ record ေတ ြ ကိ ု ရွ ာေဖြ ဖိ အ တြ ႔ ု က္ တ န္ ဖိ းတ စ္ ု ခု ခု ေတ ာ႔ လိ အ ပ္ ု တဲ အ တြ ႔ က္ ျ ဖစ္ ပါ တ ယ္ ။ေအာက္ ပါဥပမာမွ ာpersonID ဆ ု တဲ ိ ႔ field ကိ ု primary key filed အေနနဲ ႔ ထား တာျ ဖစ္ ပါ တ ယ္ ။primary key filed ေတြ ဟ ာ အမ် ာ း အား ျ ဖင္ ့ID number ျ ဖစ္ ၾ ကျ ပီ း ေတ ာ႔AUTO_INCREMENT setting ကိ အသ ံ ု း ု ျ ပဳ ထာ း တာေတ ြ မ် ာ း ပါ တ ယ္ ။AUTO_INCREMENT ဆိ တာ ု က ေတာ႔record (column) တ စ္ ခု ကိ ုအသ စ္ ေပါ င္ း ထ ည္ တိ ့ င္ ု း မွ ာ အဲ ဒီprimary 86 Youth Dreams 86 . mysql_error()). } // Create table mysql_select_db("my_db1".PHP Guide Book Moe Myint Shein { die('Could not connect: ' . mysql_error(). mysql_close($con). } else { echo "Error creating database: " . } // Create database if (mysql_query("CREATE DATABASE my_db1". ?> မွ တ္ သ ား ရန္ . $con).$con)) { echo "Database created". $sql = "CREATE TABLE Persons ( FirstName varchar(15). // Execute query mysql_query($sql.

) ဒု တိ ယ ပံ စံ ု က ေတာ႔ column name ေရာထ ည္ မည ္ ့ ့ တန္ ဖိ း ု ေရာက ိ ု ႏွ စ္ ခု စလ ံ းေဖာ္ ု ျ ပသတ ္ မွ တ္ ေပး တဲ ႔ ေအာက္ ပါ ပံ စံ ု ပါ ။ INSERT INTO table_name (column1. Age int )".) VALUES (value1.. if (!$con) 87 Youth Dreams 87 . LastName varchar(15).. value2.PHP Guide Book Moe Myint Shein key အျ ဖစ္ သတ ္ မွ တ္ ထ ား တဲ ႔ field ထ ဲ က တ န္ ဖိ း ု ကိ ု အလ ိ အ ေလ် ု ာက ္ တ စ္ ေပါ င္ း ေပး တာက ိ ေျ ု ပာ တ ာပါ ။primary key filed က null မျ ဖစ္ တ ာေသ ခ် ာေစဖိ အတ ြ ႔ ု က္ ဒီ field အတ ြ က္ NOT NULL ဆ ိ တဲ ု ႔ setting က ိ ု ထည ္ ေပး ့ ထ ား ၾ က ရပါ တ ယ္ ။ $sql = "CREATE TABLE Persons ( personID int NOT NULL AUTO_INCREMENT. PHP MySQL Insert Into INSERT INTO statement က ိ ု table တစ္ ခု ထဲ ကိ ု column(record) အသ စ္ ေတြ ထ ပ္ ေပါ င္ း ထ ည္ ဖိ ့ အတ ြ ႔ ု က္ အသ ံ း ု ျ ပဳ ပါ တယ္ ။ Syntax INSERT INTO statement က ိ ု ပံ စံ ု ႏွ စ္ မ် ဳ ိ း နဲ ႔ ေရး ႏိ င္ ု ပါ တ ယ္ ။ ပထ မ ပံ စံ ု က ေတာ႔ data ေတ ြ ကိ ေပါ ု င္ း ထ ည္ မယ္ ့ ႔ ေနရာcolumn နာ မည ္ ေတ ြ ကိ ု မေဖာ္ ျ ပဘ ဲ နဲ ႔ သူ တိ ရဲ ႔ ု ႕ တ န္ ဖိ း ု ေတ ြ ကိ ပဲ ု ထ ည္ တဲ ့ ႔ ပံ စံ ု ပါ ။ INSERT INTO table_name VALUES (value1. Lastname နဲ ႔ Age ဆိ တဲ ႔ Column သံ း ု ခု နဲ ႔ ဖန္ တီ း ခဲ ႔ ၾ ကပါ တယ ္ ။ ဒီ ဥပမာမွ ာ အဲ ဒီtable က ိ ပဲျ ု ပန္ အ သံ း ု ျ ပဳ ပါ မယ္ ။ ဒီ မွ ာ ဒီPersons ဆိ တဲ ု ႔table ထ ဲ ကိ ု ပဲrecord အသစ္ ႏွ စ္ ခု ကိ ု ေအာက္ ပါ အ တိ င္ ု းေပါ င္ း ထ ည္ လု ့ က္ ိ ပါ မယ္ ။ <?php $con = mysql_connect("localhost". value2.. column3. PRIMARY KEY(personID).."abc123").."peter".) PHP ကိ အသ ံ ု း ု ျ ပဳ ျ ပီ း ေတာ႔ ဒီ statement ေတ ြ ကိ ု execute လု ပ္ ႏိ င္ ု ဖိ အတ ြ ႔ ု က ္ mysql_query() function ကိ အသ ံ ု း ု ျ ပဳ ၾ က ရပါ မယ္ ။ ဒီfunction ကိ ုMySQL connection တစ္ ခု ဆီ ကိ ုquery တ စ္ ခုဒါ မွ မဟ ု တ ္command တ စ္ ခု ပိ ဖိ ႔ ု အတ ြ ႔ ု က္ အသ ံ း ု ျ ပဳ ၾ ကရပါ တ ယ္ ။ ဥပမာ အေရွ ႕ မွ ာက ် ေနာ္ တိ ႔ ု Persons လ ိ နာမည္ ႔ ု ေပး ထား တဲ ႔ table တစ္ ခု ကိ ု Firstname. column2. value3..$con). mysql_query($sql.... value3. FirstName varchar(15).

Age) VALUES ('Peter'. $con).php ဆီ ကိ ု ပိ ေပး ႔ ု မွ ာပါ ။ insert. Age) VALUES ('Glenn'.PHP Guide Book Moe Myint Shein { die('Could not connect: ' . mysql_error()). '33')"). mysql_error()). } mysql_select_db("my_db". 'Quagmire'. $sql="INSERT INTO Persons (FirstName.$con)) { die('Error: ' . } mysql_select_db("my_db". mysql_query("INSERT INTO Persons (FirstName. mysql_query("INSERT INTO Persons (FirstName. 'Griffin'. if (!$con) { die('Could not connect: ' .'$_POST[lastname]'.php" method="post"> Firstname: <input type="text" name="firstname" /> Lastname: <input type="text" name="lastname" /> Age: <input type="text" name="age" /> <input type="submit" /> </form> </body> </html> user က ဒီ ဥပမာထဲ က HTML form ထဲ မွ ာပါ တဲ ႔ Submit button ကိ ု ႏွ ပ္ ိ လိ က္ ု တဲ အ ခါ ႔ form ထ ဲ မွ ာ ထ ည္ ထာ ့ း တဲ ႔ data ေတ ြ က insert."abc123"). LastName.'$_POST[age]')". LastName. } echo "1 record added". mysql_close($con) ?> 88 Youth Dreams 88 . $con). '35')")."peter". ?> Insert Data From a Form Into a Database အခု က် ေနာ္ တိ ႔ ု Persons table ထ ဲ ကိ ု record အသ စ္ ေတြ ေပါ င္ း ထ ည္ ေပး ့ ႏိ င္ ု မယ ္ ႔ HTML form တစ္ ခု ကိ ု ဖန္ တီ း ပါ မယ္ ။ ေအာက ္ က ေတ ာ ႔ HTML form ပါ ။ <html> <body> <form action="insert. LastName. if (!mysql_query($sql. mysql_error()). mysql_close($con). Age) VALUES ('$_POST[firstname]'.php ဖိ င္ ု က ေန database တစ္ ခု ဆီ ကိ ုဆက ္ သြ ယ္ ပါ မယ ္ ။ျ ပီ း ေတ ာ ႔PHP $_POST variables ေတ ြ ကိ သံ ု း ု ျ ပီ းform ထဲ က တန္ ဖိ း ု ေတြ ကိ ု ထု တ္ ယူ မွ ာ ျ ဖစ္ ပါ တယ ္ ။အဲ ဒီ ေနာ က္ မွ ာ ေတ ာ႔ mysql_query() function ကေနျ ပီ း ေတာ႔ INSERT INTO statement ကိ အလ ု ု ပ္ လု ပ္ သြ ာ း မွ ာျ ဖစ္ ျ ပီ းPersons table ထ ဲ ကိ ု record အသစ္ တ စ္ ခု ထပ္ ေပါ င္ း ထည ္ ေပး ့ မွ ာျ ဖစ္ ပါ တ ယ္ ။ insert.php အတြ က္ code ပါ ။ <?php $con = mysql_connect("localhost".

echo "<br />". } mysql_close($con). $con). " " . $result = mysql_query("SELECT * FROM Persons"). if (!$con) { die('Could not connect: ' . ?> အထက ္ ပါ ဥပမာ မွ ာ mysql_query() ကေန return ျ ပန္ လ ာတဲ ႔ data ေတြ ကိ ု$result ဆိ တဲ ု ႔variable ထဲ မွ ာ သိ မ္ း ဆည ္ း ထာ း ပါ တ ယ္ ။ အဲ ဒီ ေနာက္ မွ ာarray အေနနဲ ႔ recrodset ထ ဲ က ပထ မဆံ းrow က ိ ု ု return ျ ပန္ ဖိ အတ ြ ႔ ု က္ mysql_fetch_array () function ကိ ုအသံ း ု ျ ပဳ ထ ား ပါ တယ ္ ။mysql_fetch_array() ကိ ုေခၚ သံ း ု တိ င္ ု း မွ ာrecordset ထဲ မွ ာရွ တဲ ိ ႔ ေနာက္ ထ ပ္ေနာက ္ ထ ပ္row ေတ ြ ကိ ုreturn ျ ပန္ ေပး ပါ တ ယ္ ။ while loop ကေန recordset ထဲ က record ေတြ အ ား လံ း ု ကု ျ ိ ဖတ ္ သြ ား ျ ပီ း Looping ပတ ္ ပါ တ ယ္ ။ row တ စ္ ခု စီ ရဲ ႕ တ န္ ဖိ း ု ေတ ြ ကိ ု Screen မွ ာ Print ထု တ္ ျ ပေပး ဖိ အ တြ ႔ ု က ္ PHP $row variable ($row['FirstName'] and $row['LastName']) ကိ က် ု ေနာ တိ ္ ႔ ု အသ ံ း ု ျ ပဳ ထား ပါ တယ ္ ။ ဒီ code ရဲ ႕Output အေနနဲ ႔ ေအာက္ ပါ အတ ိ င္ ု းထ ြ က္ လ ာမွ ာျ ဖစ္ ပါ တယ ္ ။ 89 Youth Dreams 89 . while($row = mysql_fetch_array($result)) { echo $row['FirstName'] ."abc123"). mysql_error())."peter". $row['LastName']. } mysql_select_db("my_db".PHP Guide Book Moe Myint Shein PHP MySQL Select Select Data From a Database Table SELECT statement က ိ ု database တစ္ ခု ထဲ က ေနdata က ိ ု select လ ု ပ္ ဖိ အ တြ ႔ ု က္ အသံ း ု ျ ပဳ ပါ တယ ္ ။ Syntax SELECT column_name(s) FROM table_name ထံ း ု စံ အ တိ င္ ု းPHP နဲ အ လု ႔ ပ္ လု ပ္ ဖိ အ တြ ႔ ု က္ mysql_query() function ကိ က် ု ေနာ တိ ္ ႔ ု သံ း ု ၾ ကရပါ မယ ္ ။ ဥပမာ ေအာက ္ ပါ ဥပမာမွ ာPersons table ထဲ မွ ာသိ မ္ း ထား တဲ ႔ data ေတ ြ အား လံ း ု ကိ ု ထု တ္ ႏႈ တ္ ျ ပမွ ာျ ဖစ္ ပါ တ ယ္ ။* ဆိ တဲ ု ႔ character ေလ း က table ထ ဲ မွ ာ ရွ တဲ ိ ႔ data ေတြ အ ား လံ း ု ကိ ု ေရြ း ခ် ယ္ ထု တ္ ေပး ပါ တယ ္ ။ <?php $con = mysql_connect("localhost".

echo "<td>" . while($row = mysql_fetch_array($result)) { echo "<tr>". echo "<td>" . } echo "</table>". $con). echo "<table border='1'> <tr> <th>Firstname</th> <th>Lastname</th> </tr>". mysql_error()).e တစ္ ခု နဲ ႔ data ေတြ ကိ ထု ု တ္ ျ ပေပး သြ ာ း မွ ာ ျ ဖစ္ ပါ တယ ္ ။ <?php $con = mysql_connect("localhost". mysql_close($con). if (!$con) { die('Could not connect: ' . } mysql_select_db("my_db". $result = mysql_query("SELECT * FROM Persons"). $row['LastName'] . "</td>".PHP Guide Book Moe Myint Shein Peter Griffin Glenn Quagmire Display the Result in an HTML Table ေအာက ္ ပါဥပမာအေနနဲ က ေတာ႔အထ က္ ႔ ပါ ဥပမာအတ ိ င္ ု း ပဲတူ ညီ တဲ ႔data ေတ ြ ကု ထု ိ တ္ ႏႈ တ္ မွ ာျ ဖစ္ ပါ တယ ္ ။ ဒါ ေပမယ ္ ႔ သူ က ေတ ာ႔ HTML tab. "</td>". ?> အထက ္ ပါ code ေတ ြ ရဲ ႕output ကေတ ာ ႔ ေအာက္ ပါ အတ ိ င္ ု း ျ ဖစ္ ပါ လိ မ္ မယ္ ႔ ။ PHP MySQL The Where Clause WHERE clause ကေတာ႔ သ တ္ မွ တ္ ထ ား တဲ ႔ အေျ ခအေနတစ္ ခု ကိ ု ျ ပည္ စံ ့ ေစတဲ ု ႔record ေတြ ကိ ပဲ ု ထု တ္ ျ ပဖိ အ တြ ႔ ု က္ အသံ း ု ျ ပဳ ၾ ကရပါ တယ ္ ။ 90 Youth Dreams 90 . $row['FirstName'] ."abc123")."peter". echo "</tr>".

} ?> output အေနနဲ က ေတာ႔ ႔ Peter Griffin ဆိ ျ ု ပီ း ေတာ႔ ရပါ မယ ္ ခင္ ဗ် ာ။ PHP MySQL Order By Keyword ORDER BY keyword က ိ ေတာ႔ ု recordset တ စ္ ခု ထဲ က data ေတ ြ ကိ ု စီ ထ ား ဖိ အတ ြ ႔ ု က္ အသ ံ း ု ျ ပဳ ပါ တ ယ္ ။ ORDER BY keyword ေလ း က default အေနနဲ ႔ ascending order နဲ ႔ record ေတ ြ ကိ ု စီ ေပး ပါ တ ယ္ ။ descending order နဲ ႔ record ေတ ြ ကိ ု စီ မယ္ ဆိ ရင္ ု DESC keyword ကိ ထ ည္ ု သြ ့ င္ းအသ ံ း ု ျ ပဳ ႏိ င္ ု ပါ တ ယ္ ။ Syntax SELECT column_name(s) FROM table_name ORDER BY column_name(s) ASC|DESC ဥပမာ 91 Youth Dreams 91 . mysql_error()). } mysql_select_db("my_db". $con). $result = mysql_query("SELECT * FROM Persons WHERE FirstName='Peter'"). while($row = mysql_fetch_array($result)) { echo $row['FirstName'] . " " . echo "<br />"."peter".PHP Guide Book Moe Myint Shein Syntax SELECT column_name(s) FROM table_name WHERE column_name operator value ဥပမာ ေအာက ္ ပါ ဥပမာ မွ ာPersons table ထ ဲ က FirstName က Peter ျ ဖစ္ ေနတ ဲ ႔ row ေတ ြ အာ း လံ း ု ကိ ု ထု တ္ ႏႈ တ္ ျ ပေပး ပါလိ ႔ ု ေဖာ ျ ္ ပ ထား ပါ တယ ္ ။ <?php $con = mysql_connect("localhost"."abc123"). if (!$con) { die('Could not connect: ' . $row['LastName'].

"peter"... $row['LastName']. WHERE some_column=some_value 92 Youth Dreams 92 . $row['Age']. while($row = mysql_fetch_array($result)) { echo $row['FirstName']. $con).PHP Guide Book Moe Myint Shein ေအာက ္ ပါ ဥပမာ မွ ာ Persons table ထဲ မွ ာသိ မ္ း ထား တဲ ႔data ေတ ြ အာ း လံ း ု ကိ ုထ ု တ္ ျ ပေပး ပါ တယ ္ ။ျ ပတဲ ေနရာမွ ႔ ာ Age column နဲ ႔ result ေတ ြ ကိ ု စီ ထ ား ေပး တာျ ဖစ္ ပါ တယ္ ။ <?php $con = mysql_connect("localhost". echo " " .. $result = mysql_query("SELECT * FROM Persons ORDER BY age"). echo " " ."abc123"). echo "<br />". if (!$con) { die('Could not connect: ' . column2 PHP MySQL Update UPDATE statement က ိ ေတာ႔ ု table တစ္ ခု ထဲ က ရွ ေနျ ိ ပီ း သ ာrecord ေတြ ကိ ု ျ ပင္ ဆ င္ ရန္Update လ ု ပ္ ရန္ အသ ံ း ု ျ ပဳ ပါ တ ယ္ ။ Syntax UPDATE table_name SET column1=value. column2=value2. mysql_error()). ?> ဒီ code ရဲ ႕output ကေတာ႔ Glenn Quagmire 33 Peter Griffin 35 ျ ဖစ္ ပါ တ ယ္ ။ Order by Two Columns column တစ္ ခု မက သံ း ု ျ ပီ း ေတာ႔ လ ည္ း order by လု ပ္ ႏိ င္ ု ပါ တယ ္ ။ တ စ္ ခု ထက ္ ပိ တဲ ု ႔ column ေတြ နဲ ႔ Ordering လု ပ္ မယ္ ဆိ ရင္ ု ေတာ႔ ပထမcolumn ကတ န္ ဖိ း ု ေတ ြ တူ ညီ ေနမွ သ ာဒု တိ ယ column က ိ အ သံ ု း ု ျ ပဳ ပါ တယ ္ ။ SELECT column_name(s) FROM table_name ORDER BY column1. } mysql_select_db("my_db". } mysql_close($con).

PHP Guide Book Moe Myint Shein ဒီ မွ ာအေရး ၾ ကီ း တာက WHERE clause ပဲ ျ ဖစ္ ပါ တ ယ္ ။UPDATE syntax က ိ အ သံ ု း ု ျ ပဳ တဲ ခါWHERE clause အေနနဲ ႔ ႔ဘယ ္ record ေတြ ကိ ုျ ပင္ ဆ င္ မွ ာလ ည္ း ဆိ တ ာကိ ု ုသ တ္ မွ တ္ ေပး ရတ ာ ျ ဖစ္ ပါ တယ ္ ။ WHERE မပါ ဘဲသ ံ း ု မယ ္ ဆိ ုrecords ေတ ြ အာ း လံ းUpdate ေတ ြ ု ျ ဖစ္ ကု န္ မွ ာ ျ ဖစ္ ပါ တယ ္ ။ ဥပမာ က် ေနာ္ တိ ႔ ု ဖန္ တီ း ခဲ တဲ ႔ ႔ Persons ဆိ တဲ ု ႔ Table မွ ာေအာ က္ ပါ အတ ိ င္ ု း ရွ ေနတာပါ ိ .."peter". } mysql_select_db("my_db". mysql_error()). if (!$con) { die('Could not connect: ' . ?> Update လ ု ပ္ ျ ပီ း တဲ အ ခါ ႔ မွ ာPersons table ထဲ မွ ာေအာ က္ ပါ ပံ စံ ု အ တိ င္ ု း ျ ဖစ္ သြ ာ း ပါ တ ယ္ ။ PHP MySQL Delete DELETE statement က ိ ုdatabase table ထ ဲ က records ေတ ြ ကိ ုျ ဖတ္ ဖိ အတ ြ ႔ ု က ္အသံ ု း ျ ပဳ ပါ တယ ္ ။FROM ဆ ိ ျ ု ပီ း ေတ ာ႔ DELETE ရဲ ႕ ေနာ က္ မွ ာပါ ပါ တ ယ္ ။ Syntax DELETE FROM table_name WHERE some_column = some_value သူ မွ ႔ ာလည္ း အေရး ၾ ကီ း တာ က WHERE clause ပဲ ျ ဖစ္ ပါ တယ ္ ။WHERE clause အေနနဲ ႔ဘယ ္record ေတ ြ ကိ ုျ ဖတ္ မယ ္ မွ ာလ ည္ း ဆိ တာ ု ကိ ု သ တ္ မွ တ္ ေပး ရတ ာ ျ ဖစ္ ပါ တယ ္ ။ WHERE မပါ ဘ ဲသ ံ း ု မယ ္ ဆိ ု records ေတြ အား လံ း Delete ု ေတ ြ ျ ဖစ္ ကု န္ မွ ာ ျ ဖစ္ ပါ တယ ္ ။ 93 Youth Dreams 93 ."abc123"). $con). mysql_query("UPDATE Persons SET Age = '36' WHERE FirstName = 'Peter' AND LastName = 'Griffin'").။ ေအာက ္ ပါ ဥပမာ ေလ း က Persons table ထဲ မွ ာရွ တဲ ိ ႔ data တ စ္ ခ် ဳ ိ ႕ ကိ ု update လ ု ပ္ ေပး ပါ တယ ္ ။ <?php $con = mysql_connect("localhost". mysql_close($con).

?> Delete လ ု ပ္ ျ ပီ း တဲ အ ခါ ႔ မွ ာေတာ႔ ေအာ က္ ပါ အတ ိ င္ ု း ျ ဖစ္ သြ ား ပါ မယ္ ။ PHP Database ODBC ODBC ဆု တာ ိ က ေတာ႔Microsoft Access Database လ ိ မ် ု ဳ ိ းData Source တစ္ ခု ကိ ုဆက ္ သြ ယ္ ေပး မယ ္ ႔Application Programming Interface (API) ျ ဖစ္ ပါ တယ ္ ။ Create an ODBC Connection ODBC connection တ စ္ ခု နဲ ႔က် ေနာ္ တိ အ ေနနဲ ႔ ု ႔ ODBC connection တစ္ ခုရေနသ ေရြ ႕က ် ေနာ တိ ္ ႔နတ ္ ု ၀က္ထဲ မွ ာရွ တဲ ိ ႔ ဘယ ္ ကြ န္ ပ် ဴ တာ ေပၚ မွ ာ ပဲ ျ ဖစ္ ျ ဖစ္ ရွ တဲ ိ ႔ ဘ ယ္ database နဲ မဆ ိ ႔ ု ခ် တ္ ိ ဆတ ္ အ သံ း ု ျ ပဳ ႏိ င္ ု ပါ တယ ္ ။ ေအာက ္ ပါ ေဖာ ျ ္ ပခ် က္ ေတ ာ႔ MS Access Database တ စ္ ခု နဲ ႔ ODBC Connection တစ္ ခု ဘ ယ္ လိ ု ဖန္ တီ း တယ ္ ဆိ တ ာပါ ု ။ 1. 3."abc123"). mysql_close($con)."peter". 2. if (!$con) { die('Could not connect: ' . Choose the System DSN tab. $con). Open the Administrative Tools icon in your Control Panel. Double-click on the Data Sources (ODBC) icon inside. 94 Youth Dreams 94 . mysql_query("DELETE FROM Persons WHERE LastName='Griffin'"). mysql_error()). } mysql_select_db("my_db".PHP Guide Book Moe Myint Shein ဥပမာ အစတ ု န္ း က Persons table က ဒီ လိ ရွ ု ပါ ိ မယ္ ။ ေအာက ္ က code ေတ ြ ကိ သံ ု း ု ျ ပီ း ေတာ႔LasteName က Griffin ျ ဖစ္ တဲ ႔Persons table ထ ဲ က record ေတြ ကိ ုဖ် က္ ပါလ ိ ႔ ု ေျ ပာ လိ က္ ု ပါ မယ္ ။ <?php $con = mysql_connect("localhost".

In the next screen. Select the Microsoft Access Driver. $sql="SELECT * FROM customers".1). Click on Add in the System DSN tab.$sql).PHP Guide Book Moe Myint Shein 4. Retrieving Records odbc_fetch_row() က ိ သံ ု း ု ျ ပီ း ေတာ႔result-set ကေန record ေတ ြ ကိ ု return ျ ပန္ ပါ တယ ္ ။ဒီfunction က rows ေတြ ကိ ု return ျ ပန္ ႏိ င္ ု တယ ္ ဆိ ု ရင္ true လိ ေျ ႔ ု ပာျ ပီ း ေတ ာ ႔ ဒါ မွ မဟ ု တ္ ရင္ ေတ ာ ႔ false ေပး ပါ တယ ္ ။ ဒီ function ကေတ ာ႔ ODBC result identifier နဲ ႔ Optical row number ဆ ိ တဲ ု ႔ parameter ႏွ စ္ ခု ကိ ု ယူ ပါ တယ ္ ။ odbc_fetch_row($rs) Retrieving Fields from a Record odbc_result() function က record တ စ္ ခု က ေန fields ေတြ ကိ ဖတ္ ု ဖိ အသ ံ ႔ ု း ု ျ ပဳ ပါ တယ္ ။ဒီfunction က ODBC result identifier နဲ ႔ field number ဒါ မွ မဟ ု တ္ name တ စ္ ခု စု စု ေပါ င္ းparameter ႏွ စ္ ခု ကု ိ ယူ ပါ တယ ္ . 6. Click OK. ေအာက ္ က code line မွ ာေတ ာ ႔ record ထဲ က ပထမဆ ံ းfield ရဲ ု ႕တ န္ ဖိ း ု ကိ ု return ျ ပန္ ေပး ပါ တ ယ္ ။ $compname=odbc_result($rs. 8. 5. $rs=odbc_exec($conn. ဒီconfiguration ကိ ုwebsite ရွ ေနတ ဲ ိ ႔ကြ န္ ပ် ဴ တာ ေပၚ မွ ာျ ပဳ လု ပ္ ရမွ ာျ ဖစ္ ပါ တ ယ္ ။က ် ေနာ္ တိ ရဲ ႔ ု ႕ကြ န္ ပ် ဴ တ ာမွ ာ Internet Information Server ဆ ိ တဲ ု ႔ IIS က ိ ု run ထား မယ ္ ဆိ ု ရင္ ဒီ instruction ေတြ က အလု ပ္ လု ပ္ မွ ာျ ဖစ္ ပါ တယ္ ။remote server ေပၚ မွ ာ က် ေနာ္ တိ ရဲ ႔ ု ႕website ရွ တ ာဆိ ိ ရင္ ု ေတာ႔အဲ ဒီserver က ိ ုPhysical access ရွ ရပါ ိ မယ ္ဒါ မွ မဟု တ ္web host က ိ ု က် ေနာ္ တိ အသ ံ ႔ ု း ု ျ ပဳ ရမယ ္ ႔ DNS တ စ္ ခု ကိ ု set up လု ပ္ ေပး ဖိ ႔ ု ေတာင္ း ခံ ရပါ မယ ္ ။ Connecting to an ODBC odbc_connect() function က ိ ု ODBC data source တ စ္ ခု နဲ ႔ ခ် တ္ ိ ဆ က္ ဖိ အတ ြ ႔ ု က္ သံ း ု ပါ တယ ္ ။ဒီ function မွ ာparameter ေလ း ခု ရွ ိ ပါ တယ ္ ။data source နာမည္ ရယ ္ ၊username ရယ္ Password ရယ္ နဲ ႔ Optical cursor type ျ ဖစ္ ပါ တယ ္ ။ SQL statement ေတြ ကိ ု execute လ ု ပ္ ဖိ အ တြ ႔ ု က္ odbc_exec() function က ိ ု အသံ း ု ျ ပဳ ပါ တ ယ္ ။ ဥပမာ ေအာက ္ က ဥပမာမွ ာ northwind လ ိ ေခၚ ႔ ု တဲ ႔DNS တ စ္ ခု ကိ ုconnection ဖန္ တီ း ပါ တ ယ္username နဲ ႔password နဲ ႔ northwind မွ ာ မရွ ပါ ိ ဘူ း ။အဲ ဒီ ေနာက ္ SQL တစ္ ခု ကိ ဖန္ ု တီ း ျ ပီ း ေတာ႔ execute လ ု ပ္ ပါ တ ယ္ ။ $conn=odbc_connect('northwind'.''. Click Finish.''). 95 Youth Dreams 95 . Give the database a Data Source Name (DSN). click Select to locate the database. 7.

echo "<th>Contactname</th></tr>". Closing an ODBC Connection odbc_close() function က ိ သံ ု း ု ျ ပီ းODBC connection တ စ္ ခု ကိ ပိ ု တ္ ရပါ မယ္ ။ odbc_close($conn).} $sql="SELECT * FROM customers".$sql). echo "<th>Companyname</th>"."CompanyName")."ContactName")."CompanyName"). echo "<tr><td>$compname</td>".} echo "<table><tr>". if (!$conn) {exit("Connection Failed: " . $conn). echo "</table>". if (!$rs) {exit("Error in SQL"). ODBC ဥပမာ ေအာက ္ ပါ ဥပမာ မွ ာ database connection တစ္ ခု ကိ ုအရင္ ဆံ း ု ဘယ ္ လိ ဖန္ ု တီ း တ ယ္ျ ပီ း ေတာ႔result set တ စ္ ခု နဲ ႔HTML table တစ္ ခု ထဲ မွ ာdata ေတ ြ ကိ ျ ု ပေပး ဖိ အ တြ ႔ ု က္ ေရး တ ာကိ ု ျ ပထ ား ပါ တယ ္ ။ <html> <body> <?php $conn=odbc_connect('northwind'.''). } odbc_close($conn). $conname=odbc_result($rs. while (odbc_fetch_row($rs)) { $compname=odbc_result($rs. ?> </body> </html 96 Youth Dreams 96 . echo "<td>$conname</td></tr>".PHP Guide Book Moe Myint Shein ေအာက ္ က code line ကေတာ႔ CompanyName လ ိ ေခၚ ႔ ု တဲ ႔ field တ စ္ ခု ရဲ ႕တ န္ ဖိ း ု ကိ ု return ျ ပန္ ေပး ပါ တ ယ္ ။ $compname=odbc_result($rs.''. $rs=odbc_exec($conn.

က ် ေနာ္ တိ ႔ ု ကိ ယ္ ု ဘ ာကိ ႔ ယ္ ု သတ ္ မွ တ္ ေပး ရ ပါ မယ္ ။XML က self-descriptive ပံ စံ ု ျ ဖစ္ ပါ တယ ္ ။XML က ိ ု W3C က ေနလ ည္ းေထာက္ ခံ မႈ ေပး ထား ပါ တ ယ္ ။ XML နဲ ႔HTML တိ ရဲ ႔ ု ႕ ျ ခား နာ း ခ် က္ ေတြ ကိ သိ ု ရပါ မယ ္ ။ XML က HTML ေနရာက ိ အ စာ ု း ၀င္ တ ာမဟု တ္ ပါ ဘူ း ။သ ူ တိ ႏွ ႔ ု စ္ ခု က မတ ူ ညီ တဲ ႔ ရည ္ ရြ ယ္ ခ် က္ ေတ ြ နဲ ႔ ေပၚ လာၾ က တာပါ ။XML က data ေတြ ကိ ု သ ယ္ ေဆ ာင္ ဖိ ႔နဲ ု ႔ သိ မ္ း ဆ ည္ း ဖိ ႔ ု ျ ဖစ္ ပါ တယ ္ ...PHP Guide Book Moe Myint Shein Chapter 9. tags ေတြ နဲ ႔ ေရး ထား တဲ ႔ အခ် က္ အ လက ္ ရွ င္ း ရွ င္ း ေလ း မွ ် သာပဲျ ဖစ္ ပါ တ ယ္ ။တစ္ စံ တ စ္ ု ေယ ာက္ က Software တစ္ ခု နဲ ႔ခ် တ္ ိ ဆ က္ ျ ပီ းဒီ အ ခ် က္ အ လက ္ ေတြ ကိ ုပိ ေပး ႔ ု ဖိ ႔ ု လက ္ ခံ ဖိ ႔ ု ျ ပသဖိ ႔ ု လု ပ္ ေဆာင္ ရရမွ ာ ျ ဖစ္ ပါ တယ ္ ။ XML is Just Plain Text 97 Youth Dreams 97 . XML & PHP က် ေနာ္ တိ အတ ြ ႔ ု က ္Web Development နဲ ႔ ပတ ္ သ က္ ရင္XML ဆ ိ တ ာ မသိ ု မျ ဖစ္ ပဲ ျ ဖစ္ ပါ တယ ္ ။XML ဆ ိ တ ာ Extensible ု Markup Language ျ ဖစ္ ပါ တ ယ္ ။XML ကိ ု data သယ ္ ေဆာင္ ဖိ နဲ ႔ ု ႔ သိ မ္ း ဆ ည္ း ဖိ ႔ ု ဖန္ တီ း ထား တာျ ဖစ္ ပါ တ ယ္ ။ဒီ က် ဴ တိ ရီ ု ရယ္ မွ ာ XML အေျ ခခံ ကိ ုေဖာ ျ ္ ပေပး မွ ာျ ဖစ္ ပါ တ ယ္ ။HTML နဲ ႔ XML နဲ ဘ ာေတ ြ ႔ ကြ ာျ ခား သလ ဲ ဆိ တ ာမ် ု ဳ ိ း ေတြ လ ည္ း ရွ င္ း သြ ား ပါ မယ ္ ။XML ကိ သိ ု ဖိ အ ေရး ႔ ု ၾ ကီ း ပါ တယ ္ ၊သင္ ယူ ဖိ လည ္ ႔ ု း လြ ယ္ ကူ ပါ တ ယ္ ။ Introduction to XML XML ကိ ု data သ ယ္ ေဆ ာ င္ ဖိ နဲ ႔ ု ႔ သိ မ္ း ဆ ည္ း ဖိ ႔ ု တီ ထြ င္ ထ ား တာျ ဖစ္ ပါ တ ယ္ ။ HTML ကေတ ာ ႔ Data ေတြ ကိ ု ထု တ္ ျ ပဖိ အတ ြ ႔ ု က္ ျ ဖစ္ ပါ တ ယ္ ။XML က HTML လိ မ် ု ဳ ိ း ပဲ အ ေတ ာ္ ေလး တူ တဲ ႔ markup language ပါ ပဲ ။XML tags ေတြ က ၾ ကိ ဳ တ င္ သ တ္ မွ တ္ ထ ား တဲ ႔ predefined ေတ ြ မဟု တ္ ပါ ဘူ း . ဘ ာ ေဒတ ာ ေတ ြ လည ္ း ဆိ တဲ ု အ ေပၚ ႔ မွ ာ ဦ း တ ည္ ပါ တယ ္ ။ HTML ကေတ ာ ႔ဒီ ေဒတ ာ ေတ ြ က ဘ ယ္ လိ ပံ ု စံ ု ရွ လဲ ိ ဆိ တဲ ု ႔အ ေပၚ မွ ာ မူ တ ည္ ျ ပီ း ေတ ာ ႔ data ေတ ြ ကိ ုျ ပသ ဖိ အတ ြ ႔ ု က္ ပါ ။ HTML ကအခ် က္ အ လက ္ ေတြ ကိ ု ထု တ္ ျ ပဖိ ျ ႔ ု ဖစ္ ျ ပီ း XML က ေတာ႔ အခ် က္ အ လ က္ ေတ ြ သယ ္ ေဆာင္ သိ မ္ း ဆည ္ း ဖိ ျ ႔ ု ဖစ္ တယ ္ လိ ႔ ု နား လည ္ ရပါ မယ္ ။ XML Does not DO Anything XML က ဘ ာကိ မွ ု မလု ပ္ ေပး ႏိ င္ ု ပါ ဘူ း ။ နား လ ညဖိ ခတ ္ ႔ ု ပါ မယ္ ။ တ ကယ ္ ေတာ႔XML က တ စ္ စံ တ စ္ ု ရာကိ ုမျ ပဳ လု ပ္ ပါ ဘူ း ။ အခ် က္ အ လ က္ ေတ ြ ကိ ု ဖြ စည ္ ႔ ဲ း တ ည္ ေဆ ာ က္ သိ မ္ း ဆ ည္ းျ ပီ းသယ ္ ေဆ ာင္ ဖိ ႔ ု ပဲ ျ ဖစ္ ပါ တ ယ္ ။ ေအာက ္ ပါ ဥပမာ က ေတာ႔ XML နဲ သိ ႔ မ္ း ဆ ည္ း ထား တဲ ႔ Jani က ေနTove ဆ ီ ကိ ေပး ု တဲ ႔ note တစ္ ခု ျ ဖစ္ ပါ တယ ္ ။ <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note> ကဲ ဒီ ႏု တ္ က ကိ ု ယ္ နား လ ည္ ေအာင္ ကိ ယ္ ု ဘ ာက ိ ႔ ု ေရး ထ ား တာ ျ ဖစ္ ပါ တယ ္ ။self descriptive သ ေဘာတ ရား ပါ ။သ ူ မွ ႔ ာပိ တဲ ႔ ု သူ ႔ နဲ ႔ လက ္ ခံ တဲ သူ ႔ ရဲ ႕အခ် က္ အလ က ္ ေတ ြ ပါ ပါ တယ ္ ။သူ မွ ႔ ာေခါ င္ း စဥ္ ပါ သ လိ ုစာ ကိ ယ္ ု လ ည္ း ပါ ၀င္ ပါ တ ယ္ ။မွ န္ ပါ တ ယ္ဒါ ေပမယ္ ႔ဒီ XML document ေလး က တ စ္ စံ တ စ္ ု ရာကိ အလ ု ု ပ္ မလ ု ပ္ ဘူ း ေလ..

heading နဲ ႔ body ဆိ တဲ ု ႔ root ရဲ ႕child elements ေလး ခု ကိ ု ေဖာ္ ျ ပေပး ပါ တ ယ္ ။ <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> ေနာက ္ ဆံ း ု စာ ေၾ ကာင္ း မွ ာေတာ႔ root element ရဲ ႕ အဆံ း ု သတ ္ ပါ ဆိ ျ ု ပီ းျ ပန္ ပိ တ္ လိ က္ ု တ ာပါ ။ 98 Youth Dreams 98 .0 ပါ လိ ေဖာ္ ႔ ု ျ ပျ ပီ း ေတ ာ ႔အသ ံ း ု ျ ပဳ ထ ား တဲ ႔ encoding က ေတာ႔ (ISO-8859-1 = Latin-1/West European character set) ပါ လိ ႔ ု ေၾ ကျ ငာ လိ က္ ု တ ာပါ ။ ေနာက ္ ထ ပ္ တ စ္ ေၾ ကာင္ း ကေတ ာ ႔ဒီdocument ေလး ရဲ ႕root element ကိ ေဖာ္ ု ျ ပလ ိ က္ ု တာ ပါ ။ဒီ document ေလ း က note တစ္ ခု ျ ဖစ္ ပါ တ ယ္ လိ ႔ ု ေျ ပာလိ ု က္ တာ ေပါ ။ ႔ <note> ေနာက ္ ထ ပ္ ျ ပီ း လာတ ဲ ႔ စာ ေၾ ကာင္ း ေလ းေၾ ကာင္ း ကေတာ႔ to.0" encoding="ISO-8859-1"?> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note> ပထ မဆံ း ု စာေၾ ကာင္ း ကေတ ာ ႔ဒါXML ဖိ င္ ု ပါ လိ ေျ ႔ ု ပာလိ က္ ု တ ာပါ ။ XML version 1.from.PHP Guide Book Moe Myint Shein XML က ဘ ာ မွ မထ ူ း ျ ခာ း ပါ ဘူ း ။စာ ေတ ြ သက ္ သက ္ ခ် ည္ း ပဲ ျ ဖစ္ ပါ တယ ္ ။plain text ေတ ြ ကိ ု ကိ င္ ု တြ ယ္ ႏိ င္ ု တဲ ႔ Software ေတ ြ က XML ကိ လ ည္ ု း ကိ င္ ု တြ ယ္ ႏိ င္ ု ပါ မယ ္ ။ ဒါ ေပမယ္ ႔XML အတ ြ က္ ဦ း စား ေပး Application ေတ ြ က ေတ ာ႔XML tag ေတ ြ ကိ ု ေက ာင္ း ေက ာ င္ းက ိ င္ ု တြ ယ္ ႏိ င္ ု ပါ တ ယ္ ။ ဒီtags ေတြ ရဲ ႕ ဘာကိ လု ု ပ္ ေဆာင္ တယ ္ ဆိ တဲ ု ႔အဓိ ပါ ယ္ က ေတာ႔application ရဲ ႕ သေဘာသ ဘာ၀ေပၚ မွ ာမွ ခိ ီ ပါ ု မယ ္ ။ XML က ိ အ သံ ု း ု ျ ပဳ ျ ပီ း ေတ ာ႔ က် ေနာ္ တိ က ကိ ႔ ု ယ္ ု ၾ ကိ ဳ က္ တဲ ႔ ကိ ယ္ ု ပိ င္ ု tag က ိ ဖန္ ု တီ း ႏိ င္ ု ၾ က ပါ တယ ္ ။အေပၚ က ဥပမာက <to> တ ိ ႔ ု <from> တ ိ လိ ႔ ု ေပါ ု ။အဲ ႔ ဒါ ေတ ြ ဟ ာ ဘယ ္XML standard မွ ာမွdefined လု ပ္ ထာ း တာမရွ ပါ ိ ဘူ း ။ဒီtag ေတြ ကိ ုဒီXML document ကိ ေရး ု သား တဲ ႔စာေရး ဆ ရာ ကတ ီ ထြ င္ လိ က္ ု တ ာပါ ပဲ ။ ဒါ ဟာ ဘာျ ဖစ္ လိ လဲ ႔ ု ဆိ ေတာ႔XML language မွ ု ာ predefined tags မရွ လိ ိ ပါ ႔ ု ။ရွ င္ း သြ ား ေအာင္ HTML နဲ ယွ ႔ ဥ္ ပါ မယ္ ။HTML မွ ာသံ း ု တဲ ႔ tag ေတ ြ က ေတ ာ ႔ Predefined ပါ ။HTML documents ေတ ြ မွ ာ HTML standard သ တ္ မွ တ္ ထ ား တဲ ႔ tags ေတြ ဥပမာ <p> <h1> အဲ ဒါ မ် ိ ဳ း ေတ ြ ကိ ပဲ ု အသံ း ု ျ ပဳ ႏိ င္ ု ပါ တ ယ္ ။ XML ဆိ တာ ု HTML ရဲ ႕ အစား ထိ း ု မဟ ု တ္ ဘ ဲ အတ ူ တက ြ ပူ း ေပါ င္ း လု ပ္ ေဆ ာင္ ၾ က တာသာျ ဖစ္ ပါ တ ယ္ ။ XML က သတ င္ း အခ် က္ အ လက ္ ေတြ ကိ ု သ ယ္ ေဆာင္ ေပး မယ ္ ႔ software နဲ ႔ hardware ေတ ြ ေပၚ မွ ာမွ ခိ ီ မႈ ု မရွ တဲ ိ ႔ အရာတစ္ ခု ျ ဖစ္ ပါ တယ ္ ။ XML ကိ ေရး ု သ ား တဲ အ ခါ သစ္ ႔ ပင္ တ စ္ ပင္ ရဲ ႕ ဖြ စည္ ႔ ဲ း တ ည္ ေဆာက ္ မႈ အတ ိ င္ ု း အျ မစ္ ကေနစျ ပီ း ေတာ႔ သစ္ ရြ က္ ေတြ အထ ိ ခြ ဲ ျ ဖာ သြ ား တ ာမ် ဳ ိ း ျ ဖစ္ ပါ တ ယ္ ။ XML document ဥပမာ XML ဖိ ု င္ တ စ္ ခု ကိ ု self-describing ပံ စံ ု နဲ ေရး ႔ ျ ပီ း ေတ ာ႔ ရိ း ု ရွ င္ း တဲ ႔ syntax ေတ ြ ကိ ပဲ ု အသ ံ း ု ျ ပဳ ၾ က ပါ တ ယ္ ။ <?xml version="1.

PHP Guide Book Moe Myint Shein </note> က် ေနာ္ တိ အ ေနနဲ ႔ ု ႔ဒီ ဥပမာ က ေန ဒီXML document ဟာဆ ိ ရင္Jani က ေန Tove ဆ ီ ု ကိ ုnote တစ္ ခု ပါ ၀င္ တ ယ္ လု ႔ ိ နား လည ္ ႏိ င္ ု ပါ တယ ္ ။ XML documents ေတြ မွ ာroot element တစ္ ခု ပါ ၀င္ ကိ ပါ ု ၀င္ ရပါ မယ္ ။ဒီ element က တျ ခာ းelement ေတြ အ ား လံ းရဲ ု ႕မိ ဘ parent ျ ဖစ္ ပါ တ ယ္ ။XML တစ္ ခု မွ ာပါ တဲ ႔ elements ေတ ြ က document tree တစ္ ခု လိ ပံ ု စံ ု ေဆ ာ င္ ပါ တယ္ ။သ စ္ ပင္ က root ကေန စျ ပီ း ေတာ႔ branches ေတြ ထိ ခြ ျ ဲ ဖာသြ ား သလ ိ ေပါ ု ။elements ေတ ြ ႔ အား လံ း ု မွ ာထပ္ ခြ တဲ ဲ ႔ elements (child elements) ေတ ြ ပါ ၀င္ ႏိ င္ ု ပါ တ ယ္ ။ <root> <child> <subchild>. child...</subchild> </child> </root> parent..00</price> 99 Youth Dreams 99 . sibling စတ ဲ ႔ ေ၀ါ ဟာ ရေတ ြ ကိ ု elements ေတြ ၾ ကား ထဲ က ဆက ္ ဆံ မႈ အျ ဖစ္ေဖာ္ ျ ပဖိ ႔ ု သံ း ု ပါ တယ ္ ။မိ ဘ ေတ ြ မွ ာ ကေလး ေတ ြ ရွ ပါ ိ မယ္ ၊level တူ က ေလး ေတြ ဆိ ရင္ ု ေမာင္ ႏွ မ ညီ အ စ္ မ ညီ အ စ္ ကိ ု ေတြ ေပါ ။elements ေတ ြ ႔ အ ား လံ း ု မွ ာHTML မွ ာလ ိ ပဲ ု text content နဲ ႔ attributes ေတ ြ ပါ ၀င္ ႏိ င္ ု ပါ တ ယ္ ။ ဥပမာ အထက ္ ပါ ပံ က စာအု ု ပ္ တ စ္ အု ပ္ ကိ ု XML နဲ ေအာ ႔ က္ ပါ အတိ င္ ု း ေရး တာကိ ု ကိ ယ္ ု စား ျ ပဳ ပါ တယ္ ။ <bookstore> <book category="COOKING"> <title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30..

99</price> </book> <book category="WEB"> <title lang="en">Learning XML</title> <author>Erik T. Rowling</author> <year>2005</year> <price>29. Ray</author> <year>2003</year> <price>39..95</price> </book> </bookstore> ဒီ ဥပမာထဲ မွ ာ root element က <bookstore> ျ ဖစ္ ပါ တယ ္ ။အား လံ း ု ေသာ <book> elements ေတ ြ က <bookstore> ထဲ မွ ာပါ ၀င္ ေနပါ တ ယ္ ။<book> element ထ ဲ မွ ာကေလ းေလ း ေယ ာက္ ရွ ပါ ိ တ ယ္ ။<title> <author> <year> နဲ ႔ <price> တိ ျ ႔ ု ဖစ္ ပါ တယ ္ ။ XML Syntax Rules XML Syntax Rules ေတြ က ရိ း ု ရွ င္ း ျ ပီ းယု တၱ တ န္ ိ ပါ တယ ္ ။သင္ ယူ ဖိ လြ ႔ ု ယ္ ကူ ပါ တယ ္ ။အသ ံ း ု ျ ပဳ ဖိ အ တြ ႔ ု က္ လြ ယ္ ကူ ပါ တယ ္ ။ အား လံ း ု ေသ ာelements ေတြ မွ ာအပိ တ္ tag ပါ ရပါ မယ္ ။ HTML မွ ာဆိ ရင္ ု အပိ တ္ မပါ တဲ ႔ elelement ေတ ြ ကိ ခဏ ခဏ ျ ု မင္ ရပါ လိ မ္ မယ ္ ႔ ေအာ က္ က အတ ိ င္ ု း ေပါ ။ ႔ <p>This is a paragraph <p>This is another paragraph XML မွ ာက ေတာ႔ closing tag က ိ ထ ား ု ခဲ လိ ႔ လံ ႔ ု း ု ႔ ၀မရပါ ဘူ း ။အပိ တ္ tag ရွ ကိ ိ ရွ ု ရပါ ိ မယ ္ ။ <p>This is a paragraph</p> <p>This is another paragraph</p> မွ တ္ ခ် က္ အ ေနနဲ ႔အေပၚ က ဥပမာ မွ ာ XML declaration စာေၾ က ာင္ း မွ ာ closing tag မပါ ပါ ဘူ း ။အဲ ဒါ မွ ာ း တာ မဟ ု တ္ ပါ ဘူ း . declaration က XML document ရဲ ႕ အစိ တ္ အ ပိ င္ ု း တစ္ ခု မဟု တ္ ပါ ဘူ းဒါ ေၾ ကာင္ ့ အပိ တ္ မပါ ပါ ဘူ း ။ XML tags ေတ ြ က Case Sensitive ျ ဖစ္ ပါ တ ယ္ ။XMLမွ ာ<letter> က <Letter> နဲ မတူ ႔ ပါ ဘူ း ။အပိ တ္ နဲ အ ဖြ ႔ င္ ့ tag ေတြ ကိ ု တူ ညီ တဲ ႔ case နဲ ပဲ ႔ ေရး သား ရပါ မယ္ ။ <Message>This is incorrect</message> <message>This is correct</message> XML elements ေတြ ကိ ု ေသေသ ခ် ာခ် ာnested လု ပ္ ရပါ မယ ္ ။HTML မွ ာဆိ ရင္ ု လု ပ္ ခ် င္ သလ ိ ု လု ပ္ လိ ရပါ ႔ ု တ ယ္ ဥပမာbold နဲ ႔ အရင္ ဖြ င္ ထာ ့ းျ ပီ း မွ italic လိ က္ ု ပိ တ္ တဲ အ ခါ ႔ bold က ိ အ ရင္ ု ပိ တ္ ျ ပီ း မွ italic ကိ ပိ ု တ္ သလိ မ် ု ဳ ိ း ။ <b><i>This text is bold and italic</b></i> 100 Youth Dreams 100 .PHP Guide Book Moe Myint Shein </book> <book category="CHILDREN"> <title lang="en">Harry Potter</title> <author>J K.

greater than character ကိ ေတ ာ ု သံ ႔ း ု ႏိ င္ ု ပါ တယ ္ ဒါ ေပမယ ္ ႔ အေကာင္ း ဆံ း ု ကေတ ာ ႔ entity reference နဲ အ စား ႔ ထိ း ု သံ း ု တာပါ ပဲ ။ 101 Youth Dreams 101 . 1000 then</message> XML မွ ာၾ ကိ ဳ တ င္ သတ ္ မွ တ္ ျ ပီ း သားentity references ငါ း ခု ရွ ပါ ိ တ ယ္ ။ တက ယ္ တ မ္ း မွ ာေတာ႔ “<” နဲ ႔ “&” တိ က သာXML မွ ႔ ု ာillegal ျ ဖစ္ တာပါ ..PHP Guide Book Moe Myint Shein XML မွ ာက ေတာ႔ အဲ ဒီ လိ မျ ု ဖစ္ ရပါ ဘူ းေနာက ္ မွ လ ာတဲ ဟ ာအရင္ ႔ ပိ တ္ ရပါ မယ္ ။XML မွ ာဆိ ု ေအာက္ က ပံ စံ ု မ် ဳ ိ း နဲ ပဲ ႔ nested လု ပ္ ကိ ု လု ပ္ ရပါ မယ ္ ။ <b><i>This text is bold and italic</i></b> <i> က <b> ရဲ ႕ အတြ င္ း ထဲ ေရာ က္ မွ ဖြ င္ တ ာျ ့ ဖစ္ တဲ အတ ြ ႔ က္ <b> ရဲ ႕ အတြ င္ း ထဲ မွ ာပဲ ပိ တ္ ကိ ပိ ု တ္ ရပါ မယ္ ဆိ တဲ ု ႔ သ ေဘာပါ ။ XML elements ေတ ြ မွ ာHTML လ ိ မ် ု ဳ ိ း ပဲ တ န္ ဖိ းအမည္ ု နာမအစံ လု ု က္ ိ ပါ တဲ ႔ attributes ေတ ြ ရွ ႏိ ိ င္ ္ ု ပါ တ ယ္ ။ attribute value ေတြ ကိ ု XML မွ ာquote လ ု ပ္ ရပါ မယ္ ေအာ က္ က ပံ စံ ု ႏွ စ္ မ် ဳ ိ း ကိ ၾ ု က ည္ ပါပထမတ စ္ ့ မ် ဳ ိ း က မွ ား ျ ပီ း ေတာ႔ ဒု တိ ယ လိ ေရး ု မွ မွ န္ ပါ တယ ္ ။ <note date=12/11/2007> <to>Tove</to> <from>Jani</from> </note> ဒီ ပထ မဟာမွ “ “ မထည္ ့ ထား လိ မွ ႔ ု ာ း ေနပါ တ ယ္ ။ <note date="12/11/2007"> <to>Tove</to> <from>Jani</from> </note> ဒီ ဟာ က မွ မွ န္ ပါ တ ယ္ ။ Entity References တစ္ ခ် ဳ ိ ႕အက ၡ ရာေတ ြ မွ ေတာ႔ XMLမွ ာသံ း ု တဲ အခါထူ ႔ း ျ ခား တဲ ႔ အဓိ ပါ ယ္ ေတ ြ ရွ ၾ ိ က ပါ တ ယ္ ။less than “<” character က ိ ု XML element တစ္ ခု ရဲ ႕ အတြ င္ း မွ ာ ထား တဲ အ ခါerror ျ ႔ ဖစ္ မွ ာျ ဖစ္ ပါ တ ယ္ ။ XML parser က ဒီ အ ကၡ ရာကိ ုelement တစ္ ခု ရဲ ႕ အစပါ လု ႔ ိ ဘာ သ ာျ ပန္ တဲ အတ ြ ႔ က္ ျ ဖစ္ ပါ တယ ္ ။ေအာက္ ပါ စာေၾ က ာင္ း က error ျ ပမွ ာျ ဖစ္ ပါ တ ယ္ ။ <message>if salary < 1000 then</message> ဒီ error က ိ မေပၚ ု ေအာင္ “<” character ကိ ု entity reference တ စ္ ခု နဲ အ စား ႔ ထိ း ု ရပါ မယ္ ။ <message>if salary &lt.

99</price> </book> <book category="WEB"> <title>Learning XML</title> <author>Erik T. XML. Rowling</author> <year>2005</year> <price>29. numbers ေတ ြ နဲ ႔တ ျ ခား character ေတ ြ ပါ ၀င္ ႏိ င္ ု ပါ တ ယ္ ။ နာမည ္ ေတြ ဟ ာ နံ ပါ တ္ ဒါ မွ မဟု တ္ punctuation charcter တ စ္ ခု နဲ ႔မစႏိ င္ ု ပါ ဘူ း ။ နာ မည ္ ေတြ ဟ ာ xml.> What is an XML Element? XML document တ စ္ ခု မွ ာXML elements ေတြ ပါ ၀င္ ပါ တယ္ ။XML element ဆိ တ ာelement ရဲ ု ႕start tag ကေနelement ရဲ ႕ end tag အထ ိ ကိ ဆိ ု လိ ု ပါ ု တယ ္ ။ element တစ္ ခု မွ ာ တျ ခား elements ေတြ ထ ပ္ ပါ ႏိ င္ ု ပါ တ ယ္ ။ ရိ း ု ရိ း ု စာ ေတ ြ လည ္ း ပဲ ပါ ႏိ င္ ု ပါ တယ ္ ။element ေတ ြ မွ ာသူ တိ ရဲ ႔ ု ႕attributes ေတ ြ လ ည္ းပါ ၀င္ ႏိ င္ ု ပါ တယ ္ ။ <bookstore> <book category="CHILDREN"> <title>Harry Potter</title> <author>J K.PHP Guide Book Moe Myint Shein Comments in XML XML မွ ာcomment ေရး တဲ ႔ syntax က ေတာ႔ HTML မွ ာနဲ တူ ႔ ပါ တယ ္ ။ <!—This is a comment -.95</price> </book> </bookstore> ဒီ ဥပမာမွ ာ ဆိ ု<bookstore> နဲ ႔<book> တ ိ မွ ႔ ု ာelement contents ေတြ ျ ဖစ္ ၾ ကပါ တယ ္သူ တိ မွ ႔ ု ာ တျ ခာ းelements ေတ ြ ထပ္ မံ ပါ ၀င္ ေနပါ တ ယ္ ။<author> ကေတ ာ ႔ text content ပါ ။သူ မွ ႔ ာtext ေတြ ပပါ တ ယ္ ။ဒီ ဥပမာ မွ ာ<book> မွ ာattribute တစ္ ခု ရွ ပါ ိ တ ယ္ ။(category=”CHILDREN”) XML Naming Rules XML အေနနဲ ႔ ေအာက္ ပါ အမည ္ ေပးဥပေဒေတြ ကိ ု လိ က္ ု နာရပါ မယ္ ။ နာမည္ ေတ ြ မွ ာ letter. Xml စတ ဲ ႔စက ာ း လံ း ု ေတ ြ နဲ ႔မစႏိ င္ ု ပါ ဘူ း ။ နာမည္ ေတ ြ မွ ာ spaces ေတြ မပါ ၀င္ ႏိ င္ ု ပါ ဘူ း ။ အဲ ဒါ အျ ပင္ ေတာ႔ ဘ ယ္ နာမည္ ကိ မဆိ ု ု အသ ံ း ု ျ ပဳ ႏိ င္ ု ပါ တ ယ္ ။ ၾ ကိ ဳ တ င္ ဖယ ္ ရွ ား ထာ း တဲ ႔ စကား လံ း ု မရွ ပါ ိ ဘူ း ။ XML Elements are Extensible XML elements ေတ ြ ကိ ု အခ် က္ အ လ က္ ေတ ြ မ် ား မ် ာ း ပိ သယ ္ ု ေဆာင္ ႏု င္ ိ ဖိ အတ ြ ႔ ု က္ ခ် ထြ ႔ ဲ င္ ေရး ႏိ င္ ု ပါ တ ယ္ ။ ေအာက ္ ပါ ဥပမာ ကိ ၾ ု က ည္ ပါ ့ ။ 102 Youth Dreams 102 . Ray</author> <year>2003</year> <price>39.

gif”> ဆိ တ ာမ် ု ဳ ိ း ကိ ုမွ တ္ မိ ၾ ကမွ ာပါ ။src ဆ ိ တဲ ု ႔attribute က <img> element အတြ က္ အ ခ် က္ အ လက ္ ေတြ ကိ ု ထပ္ ျ ပီ းပံ ပိ ႔ း ု ေပး ထာ း တာ ပါ ။ ဥပမာ <img src="computer..gif"> <a href="demo.asp"> XML attribute ေတ ြ ကိ ု“ “ Quote အတြ င္ း မွ ာ ေရး ရပါ တ ယ္ ။ single quote ေရာ double quote ေရာၾ ကိ ဳ က္ တာ သံ း ု ႏိ င္ ု ပါ တယ ္ ။လ ူ တ စ္ ေယ ာ က္ ရဲ ႕sex အမ် ဳ ိ း အစား ကိ ေဖာ ု ျ ္ ပဖိ အ တြ ႔ ု က္ person ဆိ တဲ ု ႔ tag ကိ ဒီ ု လိ ေရး ု သား ႏိ င္ ု ပါ တယ ္ ။ 103 Youth Dreams 103 . <from> နဲ ႔ <body> elements ေတြ က ေန ရယ ူ မယ္ ႔ application တစ္ ခု ကိ ု ဖန္ တီ း တယ ္ လိ ႔ ု ယူ ဆၾ ကပါ စိ ႔ ု .။ MESSAGE To: Tove From: Jani Don't forget me this weekend! အဲ ဒီ အ ခါ မွ ာေနာ က္ ထ ပ္ အ ခ် က္ အ လ က္ အ ပိ ေတ ြ ု ကိ ု က် ေနာ္ တိ အ ခု ႔ ု လိ ု ထပ္ ထ ည္ မယ္ ့ လိ ယူ ႔ ု ဆ မယ ္ ဆိ ရင္ ု <note> <date>2008-01-10</date> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note> ဒီ application က crash ျ ဖစ္ သြ ာ း မယ္ break ျ ဖစ္ သြ ား ႏိ င္ ု ပါ သလ ား ။ အေျ ဖကေတ ာ ႔No ပါ ။ဒီ application အေနနဲ ႔ <to>. <from> <body> စတ ဲ ႔ element ေတြ ကိ ု ရွ ာ ေတ ြ ျ ႔ ပီ း ေတာ႔ တူ ညီ တဲ ႔ output က ိ ထု ု တ္ ေပး ႏိ င္ ု မွ ာပဲ ျ ဖစ္ ပါ တ ယ္ ။ XML ရဲ ႕ ေက ာ င္ း ခ် က္ တ စ္ ခု က ေတာ႔သ ူ က application ကိ ုဖ် က္ ပစ္ ္ ျ ခင္ း မရွ ဘဲ ိ နဲ ႔ extend ထပ္ လု ပ္ ႏိ င္ ု တ ာျ ဖစ္ ပါ တ ယ္ ။ XML Attributes XML elements ေတ ြ မွ ာHTML လ ိ မ် ု ဳ ိ ပဲ သူ ရဲ ႔ ႕start tag အတ ြ င္ း မွ ာattribute ေတ ြ ရွ ႏိ ိ င္ ု ပါ တယ ္ ။Attribute ေတ ြ က element နဲ ႔ ပတ ္ သတ ္ တဲ ႔ အခ် က္ အ လ က္ ေတ ြ ကိ ထ ပ္ ု ျ ပီ းပံ ပိ ႔ း ု ေပး ပါ တ ယ္ ။ HTML မွ ာ တု န္ း က က် ေနာ္ တိ အ ေနနဲ ႔ ု ႔<img src=”computer.PHP Guide Book Moe Myint Shein <note> <to>Tove</to> <from>Jani</from> <body>Don't forget me this weekend!</body> </note> က် ေနာ္ တိ အ ေနနဲ ႔ ု ႔ လိ ခ် ု င္ တဲ ႔ ေအာက္ က Output ကိ ု XML document ရဲ ႕<to>.

Ziegler"> XML Elements vs.Shotgun&quot.PHP Guide Book Moe Myint Shein <person sex="female"> ဒါ မွ မဟ ု တ္ <person sex='female'> attribute မွ ာအစက တ ည္ း က double quote ပါ ေနတဲ ဟာ ႔ မ် ဳ ိ း ဆိ ု ေအာက္ က ဥပမာ လိ မ် ု ဳ ိ းsingle quote ကိ အသ ံ ု း ု ျ ပဳ ႏိ င္ ု ပါ တယ ္ ။ <gangster name='George "Shotgun" Ziegler'> ဒီ လိ ေရး ု ႏိ င္ ု ပါ တ ယ္ ဒါ မွ မဟ ု တ္ character entity ကိ သံ ု း ု ႏိ ု င္ ပါ တယ ္ ။ <gangster name="George &quot. Attributes ေအာက ္ ပါ ဥပမာ ႏွ စ္ ခု ကိ ု ယွ ဥ္ ၾ ကည္ ပါ ့ ။ <person sex="female"> <firstname>Anna</firstname> <lastname>Smith</lastname> </person> <person> <sex>female</sex> <firstname>Anna</firstname> <lastname>Smith</lastname> </person> ပထ မတ စ္ ခု မွ ာ sex က attribute ျ ဖစ္ ပါ တ ယ္ ။ေနာ က္ တ စ္ ခု မွ ေတ ာ ႔sex က element ျ ဖစ္ ပါ တ ယ္ ။ဥပမာ ႏွ စ္ ခု စလ ံ း ု က တူ ညီ တဲ အ ခ် ႔ က္ အ လက ္ ေတြ ကိ ု ေဖာ ျ ္ ပေပး ပါ တ ယ္ ။ ဘယ ္ အ ခ် န္ ိ မွ ာ attribute ကိ သံ ု း ု ျ ပီ း ဘ ယ္ အ ခ် န္ ိ မွ ာ element ကိ သံ ု း ု ရမယ ္ ဆိ တဲ ု ႔ဥပေဒမရွ ပါ ိ ဘူ း ။HTML မွ ာေတာ႔attribute ေတြ ကိ အ သံ ု း ု မ် ား ပါ တယ ္ ။XML မွ ာေတာ႔အဲ ဒါ ေတြ မသ ံ း ု တာ ပိ ေက ာင္ ု း ပါ တ ယ္ ။element က ိ သ ာattribute အစား ု ပိ သံ ု း ု သင္ ပါ ့ တယ ္ ။ My Favorite Way ေအာက ္ ေဖာ္ ျ ပပါXML documents သံ း ု ခု က တူ ညီ တဲ အ ခ် ႔ က္ အလက ္ ေတ ြ ပါ ၀င္ ပါ တ ယ္ ။ ပထ မဥပမာ မွ ာdate attribute ကိ အသ ံ ု း ု ျ ပဳ ထား ပါ တယ ္ ။ <note date="10/01/2008"> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note> ေအာက ္ က ဒု တိ ယ ဥပမာ မွ ာေတာ႔ date element ကိ သံ ု း ု ပါ တ ယ္ ။ <note> <date>10/01/2008</date> 104 Youth Dreams 104 .

PHP Guide Book Moe Myint Shein <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note> date element က ိ မွ ု ထ ပ္ ျ ပီ းခ် ထြ ႔ ဲ င္ ထ ား တဲ ႔ ပံ စံ ု ကိ ု ဒီ တ တိ ယ ေျ မာက္ မွ ာေတြ ရပါ ႔ မယ ္ ။ဒါ က် ေနာ္ အၾ ကိ ဳ က္ ဆံ းပံ ု စံ ု ပါ ။ <note> <date> <day>10</day> <month>01</month> <year>2008</year> </date> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note> XML Attributes for Metadata တခါ တ ရံ မွ ာelements ေတ ြ ကိ ု ID references ေတ ြ ထာ း ေပး ရပါ တယ ္ ။ messages> <note id="501"> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note> <note id="502"> <to>Jani</to> <from>Tove</from> <heading>Re: Reminder</heading> <body>I will not</body> </note> </messages> ဒီ ဥပမာမွ ာ ပါ တဲ ႔identifier ကေတ ာ ႔မတူ ညီ တဲ ႔notes ေတ ြ ကိ ုခြ ျ ဲ ခား ေပး ဖိ ပဲ ႔ ု ျ ဖစ္ ပါ တ ယ္ ။ note ရဲ ႕ အစိ တ္ အ ပိ င္ ု း တ စ္ ခု မဟ ု တ္ ပါ ဘူ း ။ metadata ေတ ြ ကိ ု attributes အေနနဲ ႔ သိ မ္ း သ င္ ပါ ့ တယ ္ ။ data ေတြ ကိ ေတာ႔ elements ု ေတ ြ အျ ဖစ္ သိ မ္ း သ င္ ပါ ့ တ ယ္ ။ XML Validation မွ န္ က န္ တဲ ႔syntax ေတ ြ နဲ ေရး ႔ ထာ း မဲ ႔xml document တ စ္ ခု ကိ ုwell formed လိ ေခၚ ႔ ု တြ င္ ပါ တယ ္ ။သ ူ ရဲ ႔ ႕syntax rule ေတ ြ က ေတ ာ႔ အေရွ ႕ မွ ာလည ္ းေျ ပာ လ ာခဲ ႔ ပါ ျ ပီ ။ -XML document ေတြ မွ ာroot element တစ္ ခု ရွ ရမယ္ ိ ။ -XML tags ေတ ြ သည ္ case sensitive ျ ဖစ္ သည ္ ။ 105 Youth Dreams 105 .

from.0" encoding="ISO-8859-1"?> <!DOCTYPE note SYSTEM "Note.PHP Guide Book Moe Myint Shein -XML elements ေတြ ကိ ု စနစ္ တက ် nested လ ု ပ္ ရမယ ္ ။ -XML attribute တန္ ဖိ း ု ေတြ ကိ ု quote ထ ဲ မွ ာ ထ ည္ ေရး ့ ရမယ္ ။ <?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note> Valid XML Documents valid ျ ဖစ္ တဲ ႔XML document တ စ္ ခု ဟ ာ document type definitation (DND) ဥပေဒက ိ ုလ ိ က္ ု နာတဲ ႔well form xml documents ကိ ဆိ ု လိ ု ပါ ု တ ယ္ ။ <?xml version="1.dtd"> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note> အထက ္ ပါဥပမာမွ ာ ပါ တဲ ႔DOCTYPE ေၾ ကျ ငာခ် က္ က ျ ပင္ ပ DTD file တစ္ ခု ကိ ု မွ ျ ီ ငမ္ း ထား တာျ ဖစ္ ပါ တ ယ္ ။ေအာ က္ မွ ာအဲ ဒီ DTD file ထ ဲ က content ေတြ ကိ ေဖာ ု ျ ္ ပထ ား ပါ တယ ္ ။ XML DTD DTD ရဲ ရည္ ရြ ယ္ ခ် က္ က ေတ ာ ႔XML document တ စ္ ခု ရဲ ႕ဖြ စည ္ ႔ ဲ း တ ည္ ေဆ ာ က္ ပံ ကိ ု ုdefine လ ု ပ္ ေပး ဖိ ပဲ ႔ ု ျ ဖစ္ ပါ တယ္ ။legal elements ေတ ြ နဲ ႔ structure က ိ သတ ္ ု မွ တ္ ေပး ပါ တ ယ္ ။ <!DOCTYPE note [ <!ELEMENT note (to.body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> ]> XML Schema W3C က DTD အစား သံ း ု ႏိ င္ ု တဲ ႔ XML Schema ဆိ တာ ု ကိ လည ္ ု းsupport လ ု ပ္ ပါ ေသး တယ ္ ။ <xs:element name="note"> <xs:complexType> <xs:sequence> <xs:element name="to" type="xs:string"/> <xs:element name="from" type="xs:string"/> <xs:element name="heading" type="xs:string"/> 106 Youth Dreams 106 .heading.

0" encoding="ISO-8859-1"?> <?xml-stylesheet type="text/css" href="cd_catalog.<note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note> Displaying XML with CSS XML document တ စ္ ခကိ ု ု CSS သံ း ု ျ ပီ းပံ စံ ု ခ် ဖိ ႔ ု ျ ဖစ္ ႏိ င္ ု ပါ တယ္ ။ေအာ က္ ပါ ဥပမာမွ ာျ ပထ ား ပါ တယ ္ ။ CD Catalog XML file က ဒီ လိ ပံ ု စံ ု ရွ ိ ပါ မယ္ ။ <?xml version="1.css"?> <CATALOG> <CD> <TITLE>Empire Burlesque</TITLE> 107 Youth Dreams 107 .PHP Guide Book <xs:element name="body" </xs:sequence> </xs:complexType> Moe Myint Shein type="xs:string"/> </xs:element XML Validator XML document ထ ဲ မွ ာ error ေတ ြ ရွ တယ ္ ိ ဆိ ရင္XML application က ိ ု ရပ္ ု လိ က္ ု မွ ာ ျ ဖစ္ ပါ တယ ္ ။error တ စ္ ခု ကိ ုေတြ တ ာနဲ ႔ ႔ XML document တ စ္ ခု ကိ ုprocessing လ ု ပ္ ေနရကေန အဲ ဒီProgram က ိ ရပ္ ု လိ က္ ု မယ္ လိ ႔W3C XML specification ု ကေဖာ္ ျ ပပါ တ ယ္ ။ အေၾ ကာင္ း ျ ပခ် က္ က ေတာ႔ XML software က ေသး ငယ္ ရမယ ္ ျ မန္ ရမယ္ compatible ျ ဖစ္ ရမယ္ ဆိ တဲ ု အတ ြ ႔ က္ ပါ ။ HTML မွ ာေတာ႔browsers ေတ ြ ဟ ာ error ေတြ ပါ တဲ ႔document ေတ ြ ကိ လ ည္ ု းျ ပသ ၾ က ပါ လိ မ္ ႔ မယ ္ ။XML မွ ာေတ ာ႔error ေတ ြ ကိ ု ခြ င္ မျ ့ ပဳ ပါ ဘူ း ။ က် ေနာ္ တိ ႔ ု XML ေတ ြ ရဲ ႕syntax ကိ စစ္ ု ေဆ း ႏိ င္ ု ဖိ အ တြ ႔ ု က္ XML validator တ စ္ ခု ကိ ု ဖန္ တီ း အသံ း ု ျ ပဳ ႏိ င္ ု ပါ တယ ္ ခင္ ဗ် ာ။ Viewing XML Files Raw XML file ေတ ြ ကိ ုဘယ ္browser ေတ ြ မွ ာမဆိ ုၾ ကည ္ ႏိ ့ င္ ု ပါ တယ ္ ။HTML page ေတြ လိ မ် ု ဳ ိ းXML files ေတြ ကိ ျ ု ပသ မွ ာေတ ာ ႔ မဟ ု တ္ ပါ ဘူ း ။ <?xml version="1.0" encoding="ISO-8859-1"?> .

PHP Guide Book Moe Myint Shein <ARTIST>Bob Dylan</ARTIST> <COUNTRY>USA</COUNTRY> <COMPANY>Columbia</COMPANY> <PRICE>10. margin-left: 0.YEAR.90</PRICE> <YEAR>1988</YEAR> </CD> . </CATALOG> CSS file က ဒီ လိ ရွ ု ပါ ိ မယ္ ။ CATALOG { background-color: #ffffff. } ARTIST { color: #0000FF. .90</PRICE> <YEAR>1985</YEAR> </CD> <CD> <TITLE>Hide your heart</TITLE> <ARTIST>Bonnie Tyler</ARTIST> <COUNTRY>UK</COUNTRY> <COMPANY>CBS Records</COMPANY> <PRICE>9. color: #000000. margin-left: 20pt. } CD { display: block. } အဲ ဒါ ဆိ ရင္ ု CSS နဲ ႔ format လ ု ပ္ ထ ား တဲ ႔ CD catalog က ေအာက္ ပါ ပံ စံ ု မ် ိ ဳ း ျ ဖစ္ ပါ တ ယ္ ။ 108 Youth Dreams 108 . font-size: 20pt.PRICE. . } TITLE { color: #FF0000.COMPANY { display: block. . font-size: 20pt. } COUNTRY. margin-bottom: 30pt. width: 100%.

PHP Guide Book Moe Myint Shein XML ကိ ု CSS နဲ ႔ format လု ပ္ တ ာက အရိ း ု ရွ င္ း ဆံ နည္ ု း လမ္ း ပါ ။W3C ကေတ ာ ႔ XSLT က ိ သံ ု း ု တာက ိ ု recommend လု ပ္ ပါ တ ယ္ ။ ေရွ ႕ မွ ာဆက ္ ၾ က ည္ ၾ ့ ကရေအာင္ ။ Displaying XML with XSLT XLST က ိ သံ ု း ု ျ ပီ း ေတာ႔ XML document တစ္ ခု ကိ ု HTML အျ ဖစ္ ကိ ု အသြ င္ ေျ ပာ င္ း ေပး ႏိ င္ ု ပါ တယ္ ။ XSLT က XML ရဲ ႕recommend ေပး ခံ ရတ ဲ ႔ style sheet language ျ ဖစ္ ပါ တယ ္ ။XSLT(eXtensible Stylessheet Language Transformations) က CSS ထက ္ ပိ ု ျ ပီ း ေတ ာ ႔ ဆ န္ း ျ ပား ရႈ ပ္ ေထ ြ း ပါ တ ယ္ ။ XSLT က ိ အ သံ ု ဳ း ျ ပဳ ပံ က ေတ ာ ု ႔ ေအာက ္ က ဥပမာမွ ာျ ပသ လိ ု browser ေနမျ ပခင္ XML ကိ ု HTML အျ ဖစ္ ေျ ပာင္ း တာျ ဖစ္ ပါ တယ္ ။ ဒါ က XML file ပါ ။ <!-.95</price> <description> two of our famous Belgian Waffles with plenty of real maple syrup </description> <calories>650</calories> </food> <food> <name>Strawberry Belgian Waffles</name> 109 Youth Dreams 109 .Edited by XMLSpy® --> <breakfast_menu> <food> <name>Belgian Waffles</name> <price>$5.

50</price> <description> thick slices made from our homemade sourdough bread </description> <calories>600</calories> </food> <food> <name>Homestyle Breakfast</name> <price>$6.95</price> <description> two eggs.95</price> <description> light Belgian waffles covered with strawberries and whipped cream </description> <calories>900</calories> </food> <food> <name>Berry-Berry Belgian Waffles</name> <price>$8. toast. and our ever-popular hash browns 110 Youth Dreams 110 .PHP Guide Book Moe Myint Shein <price>$7. bacon or sausage.95</price> <description> light Belgian waffles covered with an assortment of fresh berries and whipped cream </description> <calories>900</calories> </food> <food> <name>French Toast</name> <price>$4.

0" encoding="ISO-8859-1"?> <?xml-stylesheet type="text/xsl" href="simple.PHP Guide Book Moe Myint Shein </description> <calories>950</calories> </food> </breakfast_menu> XSLT Style Sheet က ေအာက္ ပါ အတ ိ င္ ု း ပါ ။ ဒီ ႏွ စ္ ခု ေပါ င္ း ထား တဲ ႔ result က ေတာ႔ ျ ဖစ္ ပါ တ ယ္ ခင္ ဗ် ာ။ XML file ရဲ ႕ အေပၚ ဆံ း ု မွ ာဒီ လိ ႏွ ု စ္ ေၾ ကာင္ း ပါ ပါ မယ္ ။ <?xml version="1.xsl"?> ဒု တိ ယ အေၾ ကာင္ း က ေတာ႔ XML file ကိ ု XSLT file နဲ ႔ ခ် တ္ ိ ဆတ ္ ေပး တာ ျ ဖစ္ ပါ တယ ္ ။ အခု အ ခ် န္ ိ ထ ိက် ေနာ္ တိ ႔XML ရဲ ု ႕ အေျ ခခံ ေတြ ကိ ုေလ႔ လာ ခဲ ျ ႔ ပီ းျ ဖစ္ ပါ တယ ္ ။ အ ခု က စျ ပီ း PHP နဲ ႔XML နဲ အ ပိ ႔ င္ ု း ကိ ု ဆက ္ လက ္ ေလ႔ လာ ပါ မယ ္ ။ PHP XML Expat Parser PHP ရဲ ႕Built in Expat parser က PHP က ိ သံ ု း ု ျ ပီ းXML document ေတြ ကိ ု pricess လ ု ပ္ ဖိ ႔ ု ျ ဖစ္ ႏိ င္ ု ေစပါ တယ ္ ။ What is Expat? XML document တ စ္ ခု ကိ ု ဖတ ္ ဖိ ႔ ု အသစ္ ျ ပဳ ျ ပင္ ဖိ ႔ ု ဖန္ တီ း ျ ပီ းတြ က္ ခ် က္ ထု တ္ ဖိ အ တြ ႔ ု က္ XML parser တစ္ ခု ကိ ု လိ အ ပ္ ု ပါ တယ္ ။ XML parsers အေျ ခခံ အာ း ျ ဖင္ ့ ႏွ စ္ မ် ဳ ိ း ရွ ပါ ိ တယ ္ ။ 111 Youth Dreams 111 .

တန္ ဖိ း ု က Jani -Close element: from ဒီXML ဥပမာက well-formed XML ပါ ၀င္ ပါ တ ယ္ ။ဒါ ေပမယ္ ႔valid XML တစ္ ခု မဟု တ္ ပါ ဘူ း ။သူ နဲ ႔ဆ က ္ ႏြ ယ္ တဲ ႔DTD မပါ ၀င္ လိ ပါ ႔ ု ။Expat parser ကိ သံ ု း ု ရင္ ေတ ာ ႔မထူ း ျ ခား ပါ ဘူ း ။Expat က လည ္ းDTDs ေတြ ကိ ု လ် စ္ လ် ဴ ရႈ တဲ ႔non-validating parser ပဲ ျ ဖစ္ ပါ တ ယ္ ။ event based အေနနဲ ႔ non-validating XML parser ျ ဖစ္ တဲ ႔ Expat က လည ္ းPHP web applications ေတ ြ အတ ြ က္ လ် င္ ျ မန္ ေသ း ငယ ္ျ ပီ းျ ပည ္ စံ ့ တဲ ု ႔အတြ အ စပ္ ဲ တ စ္ ခု ျ ဖစ္ ပါ တ ယ္ ။ XML document ေတြ ကိ ေတာ႔well-formed ျ ု ဖစ္ ရမွ ာ ျ ဖစ္ ျ ပီ း မဟ ု တ္ ရင္ ေတ ာ ႔ Expat က error ထ ု တ္ ျ ပမွ ာျ ဖစ္ ပါ တယ ္ ။ Installation XML Expat parser function ေတြ က PHP core ရဲ ႕ အစိ တ္ အ ပိ င္ ု း ျ ဖစ္ ပါ တ ယ္ ။ဒါ ေၾ ကာ င္ ့ ဒီ function က ိ ု သံ း ု ဖိ အ တြ ႔ ု က္ ဘ ာမွ ထပ္ ျ ပီ းinstall လု ပ္ စရာမလိ ပါ ု ဘူ း ။ က် ေနာ္ တိ ရဲ ႔ ု ႕ ဥပမာမွ ာေအာက္ ပါXML file က ိ အ သံ ု း ု ျ ပဳ ၾ က ပါ မယ္ ။ <?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note> 112 Youth Dreams 112 .PHP Guide Book Moe Myint Shein -Tree-based parser: ဒီ parser ကေတ ာ ႔ XML document တစ္ ခု ကိ ု tree structure အျ ဖစ္ ကု ိ ေျ ပာင္ း လဲ ေပး ပါ တယ ္ ။သ ူ က document တစ္ ခု လံ း ု ကိ ုanalyze လု ပ္ ျ ပိ း ေတာ႔tree elements ေတ ြ ဆီ ကိ ုaccess လ ု ပ္ ေစပါ တယ ္ ။ဥပမာ Document Object Model(DOM) လိ မ် ု ဳ ိ း ပါ ။ -Event-based parser: XML document တ စ္ ခု ကိ ု events ေတ ြ ပါ ၀င္ တဲ ႔ series တစ္ ခု အျ ဖစ္ ရႈ ျ မင္ ပါ တ ယ္ ။specific event တစ္ ခု ျ ဖစ္ ပြ ား တဲ အ ခါ ႔ သူ ကိ ႔ ု ကိ င္ ု တြ ယ္ ဖိ အ တြ ႔ ု က္ function တစ္ ခု ကိ ု ေခၚ ယူ သံ း ု ပါ တ ယ္ ။ Expat parser ကေတ ာ ႔ event-based parser ျ ဖစ္ ပါ တယ ္ ။ Event-based parsers က XML document ရဲ ႕content ေပၚ မွ ာမူ တ ည္ ပါ တယ ္ Structure ေပၚ မွ ာမူ မတ ည္ ပါ ဘူ း ။ဒါ ေၾ ကာင္ ့ event-based parser ေတ ြ က tree-based parses ေတ ြ ထက ္ ပိ ျ ု မန္ ျ မန္ data က ိ ု access လု ပ္ ႏိ င္ ု ပါ တ ယ္ ။ ေအာက ္ ပါ အပိ င္ ု း ေလ း ကိ ု ၾ က ည္ မယ ္ ့ ဆိ ရင္ ု <from>Jani</from> event သ ံ း ု ခု ပါ တဲ ႔ series တ စ္ ခု အျ ဖစ္ အထ က္ ပါ XML က ိ ု event-based parser တ စ္ ခု က ေဖာ္ ျ ပပါ တ ယ္ ။ -Start Element:From -Start CDATA section.

feof($fp)) or die (sprintf("XML Error: %s at line %d".4096)) { xml_parse($parser. xml_error_string(xml_get_error_code($parser)). case "FROM": echo "From: ".Note --<br />". //Open XML file $fp=fopen("test. //Specify data handler xml_set_character_data_handler($parser. xml_get_current_line_number($parser))). //Function to use at the start of an element function start($parser.$element_name.xml". break.$element_attrs) { switch($element_name) { case "NOTE": echo "-.$element_name) { echo "<br />". case "BODY": echo "Message: ". break."start". case "TO": echo "To: "."stop"). } //Function to use when finding character data function char($parser. //Read data while ($data=fread($fp. } //Free the XML parser xml_parser_free($parser).$data) { echo $data. 113 Youth Dreams 113 . break."char"). } } //Function to use at the end of an element function stop($parser. break. } //Specify element handler xml_set_element_handler($parser.$data.PHP Guide Book Moe Myint Shein Initializing the XML Parser PHP မွ ာXML parser က ိ ု အစျ ပဳ ပါ မယ္ ၊မတ ူ ညီ တဲ ႔ XML events ေတြ အတ ြ က္ handlers အခ် ဳ ိ ႕ ကိ ု သ တ္ မွ တ္ ပါ မယ္ ။ျ ပီ း တဲ ႔ အခါXML file ကိ ု parse လု ပ္ ပါ မယ ္ ။ ဥပမာ <?php //Initialize the XML parser $parser=xml_parser_create(). case "HEADING": echo "Heading: "."r").

text.PHP Guide Book Moe Myint Shein ?> ဒီ အထ က္ ပါcode ရဲ ႕output ကေတ ာ ႔ ေအာက ္ ပါ အတိ င္ ု း ပါ ။ -. XML parser ကိ အ စျ ု ပဳ ဖိ ႔ ု xml_parser_create() function က ိ ေခၚ ု သံ း ု ျ ပီ းစလ ိ က္ ု ပါ တယ ္ ။ 2. မတူ ညီ တဲ ႔ event handlers ေတ ြ နဲ အ သံ ႔ း ု ျ ပဳ ႏိ င္ ု ဖိ ႔ ု function ေတ ြ ကိ ု ဖန္ တီ း ပါ တယ ္ ။ 3.xml ဖိ င္ ု ေလ း ကိ ု parse လ ု ပ္ ပါ တ ယ္ ။xml_parse () function ကိ သံ ု း ု ျ ပီ း ေတ ာ ပါ ႔ ။ 6. xml_parser_create() function နဲ ႔ memory allocate လ ု ပ္ ထား တ ာကိ ု ဖယ ္ ထု တ္ ဖိ ႔ ု xml_parser_free() function ကိ ု ေခၚ လိ က္ ု ပါ တ ယ္ ။ PHP XML DOM built-in ပါ ျ ပီ း သားDOM parser ကိ သံ ု း ု ျ ပီ းPHP ထဲ မွ ာXML documents ေတ ြ ကိ ု Process လ ု ပ္ ခြ င္ ့ ရေစပါ တယ ္ ။ What is DOM? XML DOM(Document Object Model) က XML documents ေတြ ကိ ုaccess လ ု ပ္ တ ာရယ္တြ က္ ခ် က္ တ ာရယ္အတြ က standard နည္ း လ မ္ း တ စ္ ခု ျ ဖစ္ ပါ တ ယ္ ။DOM က XML document က ိ ု tree structure နဲ ပံ ႔ ျ ု ပပါ တယ ္ element ေတ ြ attribute ေတ ြ နဲ ႔ nodes ေတ ြ အျ ဖစ္ စာသား ေတြ ပါ ၀င္ ပါ တယ ္ ။ ေအာ က္ ပါ ပံ စံ ု အတ ိ င္ ု း ပါ ။ 114 Youth Dreams 114 .Note -To: Tove From: Jani Heading: Reminder Message: Don't forget me this weekend! သူ ရဲ ႔ ႕ အလု ပ္ လု ပ္ ပံ က ေတ ာ ု ႔ 1. အကယ ္ လိ ႔ error ု ျ ဖစ္ တ ယ္ ဆိ ု xml_error_string() function ကိ သံ ု း ု ျ ပီ း XML error တစ္ ခု ကိ ု စာ သာ း ေဖာ္ ျ ပခ် က္ တ စ္ ခု အျ ဖစ္ ေျ ပာင္ း ေပး ပါ တ ယ္ ။ 7. parser က opening နဲ ႔closing tag ေတြ ကိ ေတြ ု တဲ ႔ အ ခါဘယ ္function ေတြ ႔ ကိ ုအလ ု ပ္ လု ပ္ ေစမယ္ ဆိ တ ာက ိ ု ု 4. သတ ္ မွ တ္ ေပး ဖိ အတ ြ ႔ ု က္ xml_set_handler() function ကိ ု ေပါ င္ း ထည ္ ပါ ့ တ ယ္ ။ parser က character data ကိ ုေတြ တဲ ႔ အ ခါဘ ယ္function က ိ ႔ တြ ု က္ ခ် က္ မယ္ ဆိ တ ာ သ တ္ ု မွ တ္ ဖိ အ တြ ႔ ု က္ xml_set_character_data_handler() က ိ ေပါ ု င္ း ထည ္ ပါ ့ တယ ္ ။ 5.

PHP Guide Book Moe Myint Shein XML နဲ အလ ု ႔ ပ္ လု ပ္ ေနတ ဲ ႔ သူ တိ င္ ု း က XML DOM က ိ သိ ု ကိ သိ ု ရပါ မယ ္ ။ PHP XML DOM က ိ ဆက ္ ု မၾ က ည္ ခင္ ့ DOM အေျ ခခံ ေလးနည္ း နည္ း ေတ ာ ႔ ေလ႔ လာ ပါ မယ ္ ။DOM ဆ ု တ ာW3C (World Wide ိ Web Consortium) Standard ျ ဖစ္ ပါ တယ ္ ။DOM က XML နဲ ႔ HTML လိ ု document ေတြ ကိ ု access လု ပ္ ဖိ အ တြ ႔ ု က္ စံ တ စ္ ခု ပဲ ျ ဖစ္ ပါ တ ယ္ ။DOM ကိ ု သံ း ု ပိ င္ ု း ခြ ထ ား ဲ ပါ တယ ္ ။ -Core DOM.XML documents ေတြ အတ ြ က္ စံ model -HTML DOM – HTML documents ေတြ အတ ြ က္ စံ model တိ ျ ႔ ု ဖစ္ ပါ တယ ္ ။ DOM က document elements အား လံ း ု ရဲ ႕object နဲ ႔ properties ေတြ ကိ ု သ တ္ မွ တ္ ေပး ျ ပီ း ေတ ာ႔ သူ တိ ကိ ႔ ု ု access လု ပ္ မယ ္ ႔ methods (interface) ေတ ြ ကိ လ ည္ ု း သ တ္ မွ တ္ ေပး ပါ တ ယ္ ။ HTML DOM က ိ ေတာ႔မၾ ု က ည္ ေတ ာ ့ ဘ ဲXML DOM ႔ ကု ဆ က္ ိ ၾ ကည္ ့ ပါ မယ္ ။ XML DOM ကေတ ာ ႔ -XML အတ ြ က္ standard Object Model တ စ္ ခု ျ ဖစ္ ပါ တ ယ္ ။ -XML အတ ြ က္ standing programming interface ျ ဖစ္ ပါ တ ယ္ ။ -Platform နဲ ႔ Language မွ ခိ ီ မႈ ု မရွ ိ ပါ ဘူ း ။ -W3C စံ သတ ္ မွ တ္ ခ် က္ တ စ္ ခု ပါ ။ 115 Youth Dreams 115 .ဘ ယ္ လိ ဖြ ု စည္ ႔ ဲ း ထာ း တဲ ႔ document မဆိ အတ ြ ု က္ စံ model -XML DOM.

00</price> </book> <book category="children"> <title lang="en">Harry Potter</title> <author>J K.attribute ေတြ တိ င္ ု း ဟ ာattribute node တစ္ ခု ျ ဖစ္ တယ ္ ။ -Comments ေတြ ဟ ာcomment nodes ေတြ ျ ဖစ္ ၾ က တယ ္ ။ DOM Example <?xml version="1.PHP Guide Book Moe Myint Shein XML DOM ဆ ိ တ ာ XML elements ေတြ ု ကိ ု ဘ ယ္ လိ ုရယူ ဖိ ႔ေျ ု ပာင္ း လဲ ဖိ ႔ေပါ ု င္ း ထ ည္ ဖိ ့ ႔န႔ ု ဲဖ် က္ ဆီ း ဖိ ႔ ု တိ အ တြ ႔ ု က ္စံတ စ္ ခု ျ ဖစ္ တယ ္ လိ ႔ ု ေျ ပာ ရပါ မယ ္ ။ XML DOM Nodes DOM ထဲ မွ ာဆိ ရင္ ု XML document ထဲ မွ ာရွ တဲ ိ ႔ အရာရာတိ င္ ု း က node တစ္ ခု ျ ဖစ္ ၾ က ပါ တ ယ္ ။ DOM အေနနဲ ဆိ ႔ ရင္ ု -document တစ္ ခု လံ း ု ဟ ာdocument node တ စ္ ခု ျ ဖစ္ တယ ္ ။ -XML element တိ င္ ု း ဟာelement node တစ္ ခု ျ ဖစ္ တ ယ္ ။ -XML elements ထ ဲ မွ ာရွ တဲ ိ ႔ text ေတ ြ ဟ ာtext node ေတြ ျ ဖစ္ ၾ ကတ ယ္ ။ .99</price> </book> 116 Youth Dreams 116 .99</price> </book> <book category="web"> <title lang="en">XQuery Kick Start</title> <author>James McGovern</author> <author>Per Bothner</author> <author>Kurt Cagle</author> <author>James Linn</author> <author>Vaidyanathan Nagarajan</author> <year>2003</year> <price>49.0" encoding="ISO-8859-1"?> <bookstore> <book category="cooking"> <title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30. Rowling</author> <year>2005</year> <price>29.

"Giada De Laurentiis". and "30.PHP Guide Book Moe Myint Shein <book category="web" cover="paperback"> <title lang="en">Learning XML</title> <author>Erik T.xml ဆ ိ တဲ ု ႔ ဖိ င္ ု ေလ း ကိ ု ကိ ယ္ ု စာ း ျ ပဳ ပါ တ ယ္ ။ 117 Youth Dreams 117 . တစ္ ခု စီ မွ ာ"Everyday Italian".00" ဆိ တဲ ု ႔ text node ေတ ြ ပါ ၀င္ ၾ က ပါ တ ယ္ ။ DOM processing မွ ာ ျ ဖစ္ ေနၾ က error က ေတာ႔စာ သာ း ေတ ြ ထ ည္ ဖိ ့ အတ ြ ႔ ု က ္element node တစ္ ခု ကိ ုေမွ ် ာ လ င္ ္ တ ာပါ ့ ပဲ ။ ဘယ ္ လိ ပဲ ု ျ ဖစ္ ျ ဖစ္element node တ စ္ ခု ရဲ ႕စာသား ေတ ြ ကိ ုtext node တ စ္ ခု ထဲ မွ ာပဲသ ိ မ္ း ဆည္ း ပါ တ ယ္ ။ဒီ ဥပမာမွ ာ ဆု ရင္ ိ <year>2005</year> မွ ာဆိ ရင္<year> ဆိ ု တဲ ု ႔element node က 2005 ဆ ိ တဲ ု ႔တန္ ဖိ း ု ရွ တဲ ိ ႔text node တစ္ ခု ကိ ု ထိ န္ း သိ မ္ းပါ တ ယ္ ။2005 ဆိ တ ာ<year> ဆ ိ ု တဲ ု ႔ element ရဲ ႕တန္ ဖိ း ု မဟု တ္ ပါ ဘူ း ။ XML DOM Node Tree XML DOM က XML document တ စ္ ခု ကိ ု node. <author>.95</price> </book> </bookstore> ဒီXML ထဲ က root node က <bookstore > ျ ဖစ္ ပါ တ ယ္ ။တ ျ ခာ း ေသ ာnodes ေတ ြ အက ု န္ လံ း ု က <bookstore> ထဲ မွ ာ ရွ တ ာျ ိ ဖစ္ ပါ တ ယ္ ။ root node <bookstore> ထ ဲ မွ ာ <book> nodes ေလ း ခု ရွ ပါ ိ တယ ္ ။ပထမ <book> node မွ ာ <title>. "2005".. <year> နဲ ႔<price> ဆ ိ တဲ ု ႔ nodes ေလ း ခု ရွ ပါ ိ တ ယ္ . Ray</author> <year>2003</year> <price>39.tree တ စ္ ခု အ ေနနဲ ႔ ျ မင္ ပါ တ ယ္ ။tree တစ္ ခု မွ ာရွ တဲ ိ ႔ nodes ေတြ အ ား လံ းမွ ု ာ တစ္ ခု နဲ တ စ္ ႔ ခု ဆ က္ သြ ယ္ ခ် က္ တ စ္ ခု ရွ ၾ ိ က ပါ တယ ္ ။ nodes ေတြ အ ား လံ း ု ကိ ု tree က ိ ျ ု ဖတ္ ျ ပီ း access လ ု ပ္ ႏိ င္ ု ပါ တ ယ္ ။ သူ တိ ရဲ ႔ ု ႕ content ေတ ြ ကု ိျ ပင္ ဆ င္ ႏိ င္ ု ပါ တယ္ ၊ ဖ် က္ ႏိ င္ ု ပါ တယ ္ ၊အသ စ္element ေတြထ ပ္ ဖန္ တီ း ႏိ င္ ု ပါ တယ ္ ။node tree က nodes ေတြရဲ ႕ အစု ကိ ုျ ပသေပး ပါ တ ယ္ ။ ျ ပီ း ေတ ာ႔ သူ တိ ႔ ု ၾ ကား ထဲ က ဆ က္ သြ ယ္ ခ် က္ ကိ လည ္ ု းေဖာ ျ ္ ပပါ တ ယ္ ။tree က root node ကေန စျ ပီ း ေတ ာ ႔ tree ရဲ ႕အနိ မ္ ႔ ဆံ း ု အဆင္ အ ထိ ့ text node ေတ ြ ဆီ ကိ ု ခြ ျ ဲ ဖာသြ ား ပါ တယ ္ ။ ဒီ မွ ာတင္ ျ ပထား တဲ ႔ ပံ က ေအာက ္ ု ပါ books.

00</price> </book> <book category="children"> <title lang="en">Harry Potter</title> <author>J K.Edited by XMLSpy® --> <bookstore> <book category="cooking"> <title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.99</price> </book> <book category="web"> <title lang="en">XQuery Kick Start</title> <author>James McGovern</author> <author>Per Bothner</author> <author>Kurt Cagle</author> <author>James Linn</author> <author>Vaidyanathan Nagarajan</author> <year>2003</year> <price>49. Rowling</author> <year>2005</year> <price>29. Ray</author> 118 Youth Dreams 118 .PHP Guide Book Moe Myint Shein <!-.99</price> </book> <book category="web" cover="paperback"> <title lang="en">Learning XML</title> <author>Erik T.

PHP Guide Book Moe Myint Shein <year>2003</year> <price>39.leaf ဆိ တာ ု က ေတာ႔ က ေလး မရွ တဲ ိ ႔ node ကိ ဆိ ု လိ ု ပါ ု တ ယ္ ။ -sibling ေတ ြ က မိ ဘ တူ ညီ တဲ ႔ nodes ေတြ ျ ဖစ္ ပါ တယ ္ ။ ေအာက ္ ပါ ပံ က node tree ရဲ ု ႕ အစိ တ္ အ ပိ င္ ု းနဲ ႔ nodes ေတြ ၾ ကား ထဲ က ဆက ္ သြ ယ္ ခ် က္ ကိ ု ေဖာ္ ျ ပပါ တယ္ ။ First Child . subling ဆိ တဲ ု ႔ ေ၀ါ ဟာရေတြ ကိ ု သံ း ု ျ ပီ းသူ တိ ရဲ ႔ ု ႕ဆက ္ သြ ယ္ ခ် က္ ကိ ု ေဖာ္ ျ ပၾ က ပါ တ ယ္ ။parent node မွ ာchildren ေတ ြ ရွ ပါ ိ တ ယ္ ။level တ ူ children ေတ ြ က siblings ေတြ ျ ဖစ္ ၾ က ပါ တယ ္ ။ -node tree တ စ္ ခု မွ ာထ ိ ပ္ ဆံ းnode က ိ ု ု root လ ိ ေခၚ ႔ ု ပါ တယ ္ ။ -ပထ မဆ ံ းroot က လြ ု ျ ဲ ပီ းက ် န္ တဲ ႔ node တိ င္ ု း မွ ာparent node တစ္ ခု ပဲ ရွ ပါ ိ တ ယ္ ။ . and Siblings node tree မွ ာပါ တဲ ႔ nodes ေတြ မွ ာတ စ္ ခု နဲ တ စ္ ႔ ခု မ် ဳ ိ း ရိ း ု ဆိ င္ ု ရာဆက ္ သြ ယ္ ခ် က္ ရွ ၾ ိ က ပါ တ ယ္ ။parent. Children. child .node တ စ္ ခု မွ ာက ေလးဘ ယ္ ႏွ စ္ ေယာက ္ ျ ဖစ္ ျ ဖစ္ ရွ ႏိ ိ င္ ု ပါ တ ယ္ ။ .Last Child 119 Youth Dreams 119 .95</price> </book> </bookstore> Node Parents.

0" encoding="ISO-8859-1"?> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note> 120 Youth Dreams 120 . <author>. နဲ ႔<price> elements ေတ ြ ရဲ ႕parent node ျ ဖစ္ ပါ တ ယ္ ။ XML Parsing in PHP DOM အေၾ ကာင္ းနည ္ း နည ္ းေလ ႔ လ ာျ ပီ း ျ ပီ ဆိ ေတာ႔ ု PHP ဘ က္ ျ ပန္ သြ ား ပါ မယ္ ႔ ။အထက ္ မွ ာေျ ပာခဲ သ လိ ႔ ပဲ ု က် ေနာ တိ ္ က XML ႔ ု document တ စ္ ခု ကိ ု ဖတ ္ ဖိ ႔ ု ျ ပင္ ဆ င္ ဖိ ႔ ု ဖန္ တီ းတ ြ က္ ခ် က္ ဖိ အတ ြ ႔ ု က္ XML parserက ိ လိ ု ပါ ု တယ ္ ။ XML parser အမ် ဳ ိ း အစာ း ႏွ စ္ ခု ရွ ျ ိ ပီ း ေတ ာ႔ tree-based နဲ ႔ event-based ဆ ိ ျ ု ပီ း ျ ဖစ္ ပါ တ ယ္ ။ ခု နက ေလ ႔ လ ာခဲ တဲ ႔ ႔Expat parser က event based ျ ဖစ္ ပါ တယ ္ ။ အခု ေလ႔ လာမယ္ ႔DOM parser က ေတ ာ႔tree-based ျ ဖစ္ ပါ တ ယ္ ။ ေအာက ္ ပါ XML အပိ င္ ု း ေလ း ကိ ု ေလ႔ လ ာရေအာ င္ <?xml version="1.00</price> </book> </bookstore> <title> element က <book> element ရဲ ႕ပထမဆ ံ းကေလးျ ု ဖစ္ ပါ တယ ္ ။<price> element ကေတ ာ ႔<book> element ရဲ ႕ ေနာ က္ ဆံ း ု ကေလ း ျ ဖစ္ ပါ တ ယ္ ။ဒါ အျ ႔ ပင္<book> element က <title>. <year>.PHP Guide Book Moe Myint Shein ေအာက ္ က XML အပိ င္ ု း ေလ း ကိ ု ၾ ကည္ ့ မယ ္ ဆိ ု ရင္ <bookstore> <book category="cooking"> <title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.0" encoding="ISO-8859-1"?> <from>Jani</from> XML DOM အေနနဲ ႔ ဒီ XML ေလ း ကိ ု tree structure နဲ ျ ႔ မင္ ပါ တယ ္ ။  Level 1: XML Document  Level 2: Root element: <from>  Level 3: Text element: "Jani" DOM XML parser က လည ္ းPHP core ရဲ ႕ အစိ တ္ အ ပိ င္ ု း ျ ဖစ္ တဲ အ တြ ႔ က္ သူ ရဲ ႔ ႕function ေတြ ကိ သံ ု း ု ဖိ ႔ ု ထ ပ္ မံ install လု ပ္ စရာ မလ ိ ပါ ု ဘူ း ။ ေအာက ္ ပါ XML file ကိ ု က် ေနာ္ တိ ရဲ ႔ ု ႕ဥပမာ အတ ြ က္ အသ ံ း ု ျ ပဳ ပါ မယ ္ ။ <?xml version="1.

xml"). } ?> ဒီ code ရဲ ႕ output ကေတာ႔ ဒီ လိ ပါ ု ။ #text = to = Tove #text = from = Jani #text = heading = Reminder #text = body = Don't forget me this weekend! 121 Youth Dreams 121 . $xmlDoc->load("note. print $xmlDoc->saveXML(). " = " .PHP Guide Book Moe Myint Shein အခု XML parser ကိ ု အစျ ပဳ ပါ မယ္ ျ ပီ း ရင္ xml က ု ိ load လ ု ပ္ ျ ပီ း ေတ ာ႔ output ျ ပပါ မယ ္ ။ ဒါ ကေတ ာ ႔ PHP code ပါ ။ <?php $xmlDoc = new DOMDocument(). "<br />".0" encoding="ISO-8859-1"?> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note> ဒီ ဥပမာဟာဆိ ရင္ ု DOM Document Object တစ္ ခု ကိ ု ဖန္ တီ း ျ ပီ း ေတ ာ ႔ သူ အထ ဲ ႔ ကိ ု note. $item->nodeValue . foreach ($x->childNodes AS $item) { print $item->nodeName . $xmlDoc->load("note.xml ကေန XML က ိ လွ ု မ္ း ယူ ျ ပီ းload လု ပ္ ပါ တ ယ္ ။အဲ ဒီ ေတ ာ ႔ saveXML() function နဲ ႔ XML document ကိ ု string အျ ဖစ္ ေျ ပာင္ း ျ ပီ းprint ထ ု တ္ လိ ရေစပါ ႔ ု တယ ္ ။ Looping through XML ဆိ ပါ ု စိ ႔XML parser ကိ ု စမယ ္ျ ု ပီ း ရင္XML ကိ ုload လု ပ္ မယ္ျ ပီ း တဲ အ ခါ<note> element ထ ဲ ႔ မွ ာ ရွ တဲ ိ ႔element ေတ ြ အ ား လံ း ု ကိ ု looping ပတ ္ မယ္ ေပါ ။ ႔ <?php $xmlDoc = new DOMDocument(). $x = $xmlDoc->documentElement. ?> ဒီ code ရဲ ႕Output က ေအာက ္ ပါ အတိ င္ ု း ျ ဖစ္ ပါ တယ္ ။ Tove Jani Reminder Don't forget me this weekend! တက ယ္ လု ိ ႔ က် ေနာ္ တိ ႔ ု browser window ရဲ ႕view source ကိ ု ၾ က ည္ မယ ္ ့ ဆိ ရင္ ု ေအာက္ ပါHTML က ိ ျ ု မင္ ရပါ မယ ္ ။ <?xml version="1.xml").

0 မွ ာSimpleXML functions ေတ ြ က PHP core ထ ဲ မွ ာ ပါ လ ာျ ပီ း ေတာ႔ ဒီ function ေတ ြ ကိ ုinstall လု ပ္ စရာမလိ ဘဲ ု သံ း ု ႏိ င္ ု ပါ တယ ္ ။ Using SimpleXML ေအာက ္ က ေတ ာ ႔ XML file တ စ္ ခု ပါ ။ <?xml version="1.PHP Guide Book Moe Myint Shein #text = ဒီ ဥပမာမွ ာ ဆိ ရင္element တ စ္ ု ခု စီ ရဲ ႕ ၾ က ား မွ ာ ဗလ ာ ျ ဖစ္ ေနတ ဲ ႔text nodes ေတ ြ ရွ ိ တာကိ ေတ ြ ု ရပါ ႔ မယ္ ။ XML generate လု ပ္ တဲ အ ခါnodes ေတ ြ ႔ ရဲ ႕ ၾ ကာ း ထဲ မွ ာ white-space ေတြ ပါ ၀င္ လ ာပါ တယ ္ ။XML DOM parser က အဲ ဒါ ေတြ ကိ ုသ ာမန္ element ေတြ အျ ဖစ္ မွ တ္ ယူ ပါ တ ယ္ ။တ ကယ ္ လိ ႔ ု က် ေနာ္ တိ ႔ ု က သ တိ မထ ာ း မိ ဘူ း ဆိ ု တခါ တ ေလ ျ ပသနာေတြ ကိ ျ ု ဖစ္ ေစမွ ာပါ ။ PHP SimpleXML SimpleXML ကေတာ႔PHP5 မွ ာမွပါ ၀င္ လ ာတာပါ ။ သူ က လ ည္ းတ ကယ ္ လိ က် ႔ ု ေနာ္ တိ က XML document ရဲ ႔ ု ႕ layout ကိ သိ ု ရင္ element တ စ္ ခု ရဲ ႕attribute နဲ ႔ text ေတ ြ ကိ ု ရယ ူ ႏိ င္ ု ဖိ အတ ြ ႔ ု က္ လြ ယ္ ကူ တဲ ႔ နည္ း လမ္ း တစ္ ခု ပဲ ျ ဖစ္ ပါ တယ ္ ။ DOM တ ိ ႔Expat parser တ ိ ု နဲ ႔ ု ယွ ႔ ဥ္ မယ္ ဆိ ုSimpleXML က element တ စ္ ခု က ေန text data ေတြ ဖတ ္ ဖိ အ တြ ႔ ု က ္code နည ္ း နည ္ း ပဲ လိ အ ပ္ ု ပါ တ ယ္ ။ SimpleXML က ေအာ က္ ပါ အတ ိ င္ ု းXML document တစ္ ခု ကိ ု object တ စ္ ခု အျ ဖစ္ ေျ ပာင္ း လဲ ေပး ပါ တ ယ္ ။ Elements.ေတ ြ ကိ ု SimpleXMLElement object ရဲ ႕သီ း ျ ခားattribute အျ ဖစ္ ေျ ပာင္ း ေပး ပါ တ ယ္ ။level တ စ္ ခု မွ ာelement တစ္ ခု ထက ္ ပိ ျ ု ပီ း ရွ ေနရင္ ိ array တစ္ ခု အတ ြ င္ း မွ ာထား ေပး ပါ တ ယ္ ။ Attributes ေတ ြ ကိ ေတ ာ႔ ု associative array က ိ အ သံ ု း ု ျ ပဳ ျ ပီ းaccess လ ု ပ္ ပါ တ ယ္ ။index တ စ္ ခု က attribute name တစ္ ခု ကိ ု ဆက ္ သြ ယ္ ေနပါ တယ ္ ။ Element data.element ေတြ က text data ေတြ ကိ ေတာ႔ ု strings ေတြ အျ ဖစ္ ေျ ပာင္ း ေပး ပါ တယ ္ ။element တ စ္ ခု မွ ာtext node တစ္ ခု ထ က္ ပိ ျ ု ပီ း ရွ ေနရင္ ိ သူ တိ ကိ ႔ ု ု ရွ တဲ ိ ႔ order အတိ င္ ု းအစီ အ စဥ္ တက် ထား ေပး ပါ တယ္ ။ SimpleXML က ေအာ က္ ပါ အေျ ခခံ လု ပ္ ငန္ း စဥ္ ေတြ ကိ ေဆာင္ ု ရြ က္ တဲ အ ခါ ႔ လြ ယ္ ကူ ျ ပီ းျ မန္ ဆ န္ ပါ တယ ္ ။ -XML file ေတြ ကိ ု read လ ု ပ္ တာ -XML string ေတ ြ က data ေတ ြ ကိ ု extract လ ု ပ္ တာ -text nodes ေတ ြ ဒါ မွ မဟ ု တ္ attribute ေတ ြ ကိ တ ည္ ု း ျ ဖတ ္ တ ာ။ ဘယ ္ လိ ပဲ ု ျ ဖစ္ ျ ဖစ္ ျ ဖစ္advanced XML မွ ာ အလ ု ပ္ လု ပ္ တဲ အ ခါExpat parser ဒါ ႔ မွ မဟ ု တ ္XML DOM က ိ သံ ု း ု တာ က ပု ျ ိ ပီ း သင္ ေလွ ့ ် ာ ပါ ္ တယ ္ ။ PHP 5.0" encoding="ISO-8859-1"?> <note> 122 Youth Dreams 122 .

PHP Guide Book

Moe Myint Shein

<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
က်
ေနာ္
တိ
က အဲ


ဒီ
file ထ ဲ
က ေနelement အမည္
နဲ

data ေတ ြ
ကိ

Output ျ
ပခ်
င္
တယ္
ဆိ
ပါ

စိ


လု
ပ္
ရမွ
ာေတ ြ
က ေတ ာ႔
1.

XML file က ိ

Load လု
ပ္
မယ္

2.

ပထမဆ ံ
းelement ရဲ


အမည ္
ကိ

ရယ ူ
မယ္

3.

child node တစ္
ခု
စီ
ကိ

children()function ကိ
သံ




ပီ

ေတ ာ

loop လု
ပ္
မယ္

4.

child node တစ္
ခု
စီ
ရဲ
႕element အမည ္
နဲ

data ေတ ြ
ကိ

ထု
တ္

ပမယ္

ဥပမာ
<?php
$xml = simplexml_load_file("test.xml");
echo $xml->getName() . "<br />";
foreach($xml->children() as $child)
{
echo $child->getName() . ": " . $child . "<br />";
}
?>
ဒီ
code ကိ

run ရင္
ဒီ
လိ

Output မ်



ရပါ

ပီ

note
to: Tove
from: Jani
heading: Reminder
body: Don't forget me this weekend!

123

Youth Dreams

123

PHP Guide Book

Moe Myint Shein

Chapter 10. Exceptiong Handling & Filter in PHP
Exception ဆ ိ
တ ာဘာ

လဲ
PHP 5 နဲ
အတ ူ

error ေတြ
နဲ
ပတ ္

သတ ္

ပီ

ကိ
င္

တြ
ယ္
ဖိ
အ တြ


က္
Object Oriented နည္

လ မ္

အသ စ္
တ စ္
ခု
ထြ
က္
ေပၚ
လ ာပါ
တ ယ္

Exceptiong handling ဆ ိ
တ ာ error အေျ

ခအေနတစ္
ခု
ခု

ဖစ္
လ ာျ
ပီ
ဆိ
ရင္code က ိ

ုexecute လု
ပ္
ေနတဲ
႔သူ
ရဲ

႕flow က ိ

ေျ
ပာ
င္

လဲ
ပစ္
လိ
က္

ဖိ
အသ ံ





ပဳ
တာ

ဖစ္
ပါ
တယ ္
။ဒီ
အ ေျ
ခအေနကိ

exception တစ္
ခု
လိ
ေခၚ


တြ
င္
ပါ
တယ ္

ေအာက ္
ပါ
အေျ
ခအေနေတြ
က ေတာ႔
exception တ စ္
ခု

ဖစ္
ပြ


သြ



ပီ
ဆိ
ရင္

ပံ
မွ

န္

ဖစ္
ပ်
က္
သြ
ား
မယ ္

ကိ
စၥ
ေတ ြ
ေပါ


-

လက ္
ရွ

code ရဲ

အ ေျ

ခအေနကိ

သိ
မ္

ဆ ည္

ထား
(save) ထား
ေပး
မယ္

-

code execution က (custom) ၾ
ကိ

တင္သတ ္
မွ
တ္
ေပး
ထား
တဲ
႔exception handler function တ စ္
ခုဆီ
ကိ

ကူ

ေျ
ပာင္
းသ ြ


ေပး
မယ္

-

အေျ
ခအေနေပၚ
မွ
ာမူ
တည္

ပီ

ေတ ာ႔
handler က save လု
ပ္
ေပး
ထား
တဲ
႔code အေျ
ခအေနက ေန ဆက ္

ပီ

ေတာ႔
run
တာကိ
ုresume လ ု
ပ္
ေပး
ရင္
လု
ပ္
ေပး
မယ္
။ဒါ
မွ
မဟု
တ္
script execution ကိ

အဆ ံ


သတ ္
ပစ္
လိ
က္

မယ ္
။ဒါ
မွ
မဟု
တ္
code ရဲ

တျ
ခာ

တစ္
ေနရာကေနscript က ိ
ဆက ္


ပီ

ေတာ႔
run သြ
ား
ေပး
မယ္

ေအာက ္
ပါ
Error handling methods အမ်



မ်



ကိ

ေလ႔
လ ာၾ
ကပါ
မယ္

 Basic use of Exceptions
 Creating a custom exception handler
 Multiple exceptions
 Re-throwing an exception
 Setting a top level exception handler
မွ
တ္
ခ်
က္
- Exception မ်


ကိ

error အေျ
ခအေနမ်
ား
တြ
င္
သ ာအသံ



ပဳ
သင္
သ ည္

။code ထ ဲ
တြ
က္
ေနရာ
တ စ္
ခု
မွ
တျ
ခား
ေနရာ
တစ္
ခု
သိ


ခု
န္
ကူ

ရန္
အတ ြ
က္
အသ ံ


မျ
ပဳ
သ င္

ပါ

Basic Use of Exceptions
exception တစ္
ခု

ဖစ္
ပြ
ား
သြ
ား

ပီ
ဆိ
ရင္

code ေတြ
ကိ
ဆက ္


ပီ
းexecute လ ု
ပ္
မွ

မဟ ု
တ္
ေတ ာ
ပါ

ဘူ

။PHP က catch ဆ ိ
တဲ


block
ကိ
ုရွ
ာေဖြ
ဖိ
႔ၾ

ကိ


စား
ပါ
မယ္
။ exception တစ္
ခု
ကိ
ုcaught မလု
ပ္
ထာ

ဘူ

ဆိ
ရင္Uncaught Exception ဆိ



ပီ
း error

ဖစ္
ပြ


သြ

းမွ
ာပါ
။catch မလု
ပ္
ဘဲ
နဲ

exception တ စ္
ခု
ကိ

ဖန္
တီ


က ရေအာ
င္

<?php
//create function with an exception
function checkNum($number)
{
if($number>1 )
{
throw new Exception("Value must be 1 or below");
}
return true;
}

124

Youth Dreams

124

PHP Guide Book

Moe Myint Shein

//trigger exception
checkNum(2);
?>
က်
ေနာ္
ဆီ

မွ
ာအခု
လိ

error ျ
ပပါ
တ ယ္

Fatal

error:

Uncaught

exception

'Exception'

with

message

'Value

must

be

1

or

below'

in

C:\xampp\htdocs\php\1.php:7 Stack trace: #0 C:\xampp\htdocs\php\1.php(13): checkNum() #1 {main}
thrown in C:\xampp\htdocs\php\1.php on line 7
Try, throw and catch
Try, throw နဲ
႔catch တိ
က ေတာ႔exception ေတြ

မွ
ာသံ


တဲ
႔ေ၀ါ
ဟာရေတြ
ပါ
။အထက ္
လိ
မ်



းerror ေတြ
မျ
ဖစ္
ရေအာင္
exception တစ္
ခု
ကိ

ကိ
င္

တြ
ယ္
ေျ
ဖရွ
င္

ဖု
အ တြ


က္
code ေသ ခ်
ာဖန္
တီ

ဖိ
လိ


ပါ

တ ယ္

Proper exception code ေပါ

စနစ္
တ က်
ရွ
တဲ


ကိ
င္

တြ
ယ္
ႏိ
င္

မယ္
code ေတ ြ
မွ
ာေအာက ္
ပါ
အခ်
က္
ေတြ
ပါ
၀င္
သ င္
ပါ

တ ယ္

1.Try- exception တစ္
ခုကိ
အသ ံ




ပဳ
မယ ္
႔function က try block တစ္
ခုထဲ
မွ
ာရွ
ေနသင္

ပါ

တ ယ္
။ exception တ စ္
ခု
မျ
ဖစ္
ပြ


သြ
ား
ဘူ

ဆိ
ရင္

ဒီ
code ေတ ြ
က ပံ
မွ

န္
အတ ိ
င္


ပဲဆက ္
run သ ြ


မွ
ာပါ
။မဟ ု
တ္
ဘဲ
exception တ စ္
ခု

ဖစ္
ပြ
ား
သြ


မယ ္
ဆိ
မွ

သ ာexception တ စ္
ခု
thrown လ ု
ပ္
ေပး
မွ
ာေပါ


2.Throw- ဒါ
ကေတာ႔
exception တ စ္
ခု
ကိ

က်
ေနာ္
တိ


ဘ ယ္
လိ

ေျ
ဖရွ
င္

မယ္
ဆိ
တ ာကိ

ေပါ

။throw တိ

င္


မွ
ာအနည ္

ဆံ


ေတ ာ႔
catch တ စ္
ခု
ရွ
ရပါ

မယ္

3. Catch- catch block တစ္
ခု
က exception တစ္
ခု
ကိ

လက ္
ခံ
ရယူ
တ ယ္

ပီ

တဲ
ေနာက္

exception information ေတ ြ
ပါ
၀င္
တဲ

object တစ္
ခု
ကိ

ဖန္
တီ

ေပး
ပါ
တယ ္

valid code ေတြ
exception တစ္
ခု
ကိ

ေျ
ဖရွ
င္


က ည္
ရေအာင္

<?php
//create function with an exception
function checkNum($number)
{
if($number>1)
{
throw new Exception("Value must be 1 or below");
}
return true;
}
//trigger exception in a "try" block
try
{
checkNum(2);
//If the exception is thrown, this text will not be shown
echo 'If you see this, the number is 1 or below';
}
//catch exception
catch(Exception $e)

125

Youth Dreams

125

return $errorMsg.PHP Guide Book Moe Myint Shein { echo 'Message: ' .$this->getLine(). try { //check if if(filter_var($email.$e->getMessage(). catch block က exception က ိ ရယူ ု ျ ပီ း ေတ ာ ႔($e) object တစ္ ခု ကိ ဖန္ ု တီ း ပါ တယ ္ ။ဒီobject မွ ာexception 3.': <b>'. 126 Youth Dreams 126 .$this->getMessage().$this->getFile() .com". 5.' in '. } } $email = "someone@example. FILTER_VALIDATE_EMAIL) === FALSE) { //throw exception if email is not valid throw new customException($email). checkNum() function ထဲ မွ ာရွ တဲ ိ ႔ exception ၾ ကီ း ျ ဖစ္ ပြ ား (thrown) သ ြ ား ပါ တ ယ္ ။ information ေတ ြ ပါ ၀င္ ပါ တ ယ္ ။ exception အတြ က ္error message ကိ ု$e->getMessage() ဆ ိ ျ ု ပီ း ေတာ႔exception object ဆီ က ေန လွ မ္ း ေခၚ ျ ပီ းecho နဲ ထု ႔ တ္ ျ ပပါ တယ ္ ။ Creating a Custom Exception Class ကိ ယ္ ု ဘ ာသာက ိ ႔ ယ ္custom exception class တ စ္ ု ခု ဖန္ တီ း တာကလ ည္ းရိ း ု ရွ င္ း ပါ တယ ္ ။PHP မွ ာျ ဖစ္ ပြ ား မယ ္ ႔exception တစ္ ခုေပၚ ေပါ က္ လ ာရင္ေခၚ သံ း ု လိ ရမယ္ ႔ ု ႔function ေတြ ပါ မယ္ ႔class တစ္ ခု ကိ ုဖန္ တီ း ရံ ပါ ု ။ဒီclass ကေတ ာ ႔exception class ရဲ ႕extension ျ ဖစ္ ရပါ မယ ္ ။ ကိ ယ္ ု ဘ ာကိ ႔ ဖန္ ု တီ း မယ ္ ႔ custom exception class က PHP ရဲ ႕excepton class ဆ ီ က ဂု ဏ္ သ တၱ ေတ ြ ိ ကိ ု မ် ိ ဳ း ရိ း ု ဆ က္ ခံ ရမွ ာ ျ ဖစ္ ျ ပီ း ေတာ႔ custom function ေတြ ကိ ု ထပ္ ေပါ င္ း ထည ္ ေပး ့ ႏိ င္ ု ပါ တ ယ္ ။ exception class တ စ္ ခု ကိ ု ဖန္ တီ း ၾ ကရေအာင္ <?php class customException extends Exception { public function errorMessage() { //error message $errorMsg = 'Error on line '.. checkNum() function က ိ ဖန္ ု တီ း ပါ တယ ္ ။သ ူ က နံ ပါ တ္ တ စ္ ခု ကိ ု တ စ္ ထက ္ ၾ ကီ း လားစစ္ တ ာကိ ုလု ပ္ ပါ တ ယ္ ။ တ ကယ ္ လိ ႔ ု ၾ ကီ း တယ ္ ဆိ ရင္ ု exception တစ္ ခု ကိ ု ျ ဖစ္ ေစပါ တယ ္ ။ 2.. try block ထ ဲ မွ ာcheckNum() function က ိ ေခၚ ု လိ က္ ု ပါ တ ယ္ ။ 4.'</b> is not a valid E-Mail address'. } ?> ဒီ ေဖာ္ ျ ပပါ code က ေအာက္ ပါ အတိ င္ ု းerror ကိ ေက ာ ု င္ း ေကာင္ းမြ န္ မြ န္ output ထု တ္ ေပး ပါ တ ယ္ ။ Message: Value must be 1 or below ဒီ ေဖာ္ ျ ပပါ ဥပမာက exception တစ္ ခု ကိ ု throw ျ ဖစ္ ေစပါ တယ ္ ျ ပီ း တဲ ေနာက္ ႔ မွ ာျ ပန္ ျ ပီ းcatch လ ု ပ္ လိ က္ ု ပါ တယ ္ ။ 1.

try { 127 Youth Dreams 127 .PHP Guide Book Moe Myint Shein } } catch (customException $e) { //display custom message echo $e->errorMessage().com". catch block က exception က ိ ု ဖမ္ း ထာ း လိ က္ ု ျ ပီ း ေတာ႔ error message ကိ ထု ု တ္ ျ ပေပး ပါ တ ယ္ ။ Multiple Exceptions အေျ ခအေနေတ ြ အမ် ား ၾ ကီ း ကု ိ စစ္ ေဆ း ဖိ အတ ြ ႔ ု က ္ exception ေတ ြ အ မ် ား ၾ ကီ း ကု ိ အသ ံ း ု ျ ပဳ ဖိ ႔ script ု တ စ္ ခု တည္ း ကိ ု သံ း ု ႏိ င္ ု ပါ တယ ္ ။if else block ေတ ြswitch တ ိ ႔nested multiple exception ေတြ ု အ မ် ား ၾ ကီ း ကိ ုအသံ း ု ျ ပဳ လိ ရပါ ႔ ု တ ယ္ ။ဒီ exception ေတြ က ေန မတူ ညီ တဲ ႔exception class ေတြ ကိ အ သံ ု း ု ျ ပဳ ျ ပီ း ေတ ာ႔မတူ ညီ တဲ ႔error message ေတြ ကိ ု ထု တ္ ေပး ပါ လိ မ္ မယ္ ႔ ။ <?php class customException extends Exception { public function errorMessage() { //error message $errorMsg = 'Error on line '.'</b> is not a valid E-Mail address'. try block က ိ ု execute လု ပ္ လိ က္ ု ေတ ာ ႔email လ ိ ပ္ စာ က valid မျ ဖစ္ တဲ အတ ြ ႔ က ္exception တစ္ ခုthrown သြ ာ း ပါ တ ယ္ ။ 5.$this->getMessage(). } ?> class အသ စ္ က old exception class ရဲ ႕ေက ာ္ ပီ တစ္ ခု ျ ဖစ္ ပါ တယ ္ ။သ ူ မွ ႔ ာအပိ အ ေနနဲ ု ႔errorMessage() ဆိ တဲ ု ႔ function တစ္ ခုပါ လာ ပါ တယ ္ ။ old class ရဲ ႕ copy ျ ဖစ္ တဲ အတ ြ ႔ က ္properties နဲ ႔method ေတ ြ ကိ ုold class က ေန မ် ဳ ိ း ရိ း ု လိ က္ ု ပါ တယ ္ ။က ် ေနာ တိ ္ အ ေနနဲ ႔ ု ႔ getLine().': <b>'.' in '. customException() class တစ္ ခု ကိ ုOld exception class ရဲ ႕extension တစ္ ခု အ ေနနဲ ႔ဖန္ တီ း ပါ တ ယ္ ။ ဒါ ေၾ က ာင္ ့ old exception class က ေနmethods နဲ ႔ properties ေတြ အ ား လံ း ု ကိ ု မ် ဳ ိ း ရိ း ု ဆ က္ ခံ ပါ တယ္ ။ errorMessage() က ိ ဖန္ ု တီ း ပါ တ ယ္ ။email address က invalid ျ ဖစ္ ေနမယ ္ ဆိ ရင္ဒီfunction က error ု message တစ္ ခု ကိ ု ထု တ္ ေပး တာ ပါ ။ 3. } } $email = "someone@example. $email variable ကိ ု valid မျ ဖစ္ တဲ ႔ email လိ ပ္ စာတ စ္ ခု အျ ဖစ္ ထား ေပး လိ က္ ု တဲ အ ခါ ႔ ။ 4. 2. return $errorMsg.$this->getFile() .$this->getLine(). getFile() နဲ ႔getMessage() လိ မ် ု ဳ ိ းexception class methods ေတ ြ ကိ ု အသံ း ု ျ ပဳ ႏိ င္ ု ပါ တ ယ္ ။ အထက ္ က ဥပမာ ကိ ု ရွ င္ း ရရင္ ဒီ ဥပမာမွ ာexception တစ္ ခု ကိ ု ျ ဖစ္ ပြ ား ေစျ ပီ း ေတာ႔ custom exception class တစ္ ခု နဲ ႔ ျ ပန္ ဖမ္ း ထား ပါ တယ ္ ။ 1.

FILTER_VALIDATE_EMAIL) === FALSE) { //throw exception if email is not valid throw new customException($email). "example") !== FALSE) { throw new Exception("$email is an example e-mail"). } //check for "example" in mail address if(strpos($email. $email variable ကိ ုvalid ျ ဖစ္ တဲ ႔email လိ ပ္ စာတစ္ ခု အျ ဖစ္ထား ေပး ထာ း ပါ တ ယ္ ။ဒါ ေပမယ္ ႔example ဆိ တဲ ု ႔ string တစ္ ခု ပါ ေနပါ တယ ္ ။ 4. } ?> run လ ိ က္ ု မယ္ ဆိ ရင္ ု someone@example. catch ဘ ေလာ႔ က exception ကိ ဖမ္ ု း လိ က္ ု ပါ တ ယ္ ျ ပီ း ေတ ာ ႔ မွ န္ က န္ တဲ ႔ error message က ိ ထု ု တ္ ျ ပေပး ပါ တယ ္ ။ Re-throwing Exceptions တစ္ ခါ တ ေလ exception တစ္ ခု ကိ ု thrown လု ပ္ ျ ပီ း တဲ ေနာ ႔ က ္ ပံ မွ ု န္ နည ္ း လ မ္ း နဲ မဟ ု ႔ တ္ ဘ ဲတ ျ ခား နည္ း နဲ ႔က ိ င္ ု တြ ယ္ ခ် င္ ပါ လိ မ္ ႔ မယ ္ ။ဒု တိ ယအၾ ကိ မ္ catch block တစ္ ခု နဲ ႔ exception တစ္ ခု ကိ ု throw လ ု ပ္ လိ ရပါ ႔ ု တ ယ္ ။ script တစ္ ခု ရဲ ႕ ဂု ဏ္ သတ ၱ ေကာင္ ိ းတစ္ ခု အ ေနနဲ ႔ user ေတ ြ ကိ ု system error ေတြ မျ မင္ ရေအာင္ လု ပ္ ေဆ ာ င္ ေပး ႏိ င္ ု ရပါ မယ္ ။ System error ေတ ြ က coder ေတြ အတ ြ က္ အ ေရး ၾ ကီ း ပါ တယ ္ဒါ ေပမယ္ ႔user ေတ ြ အ တြ က ္ဘ ာမွစိ တ္ ၀င္ စာ း စရာ မရွ ဘူ ိ း ေလ ။user ေတ ြ အ တြ က ္အရာရာလ ြ ယ္ ကူ ေနေစဖိ ႔user friendly message တစ္ ု ခု နဲ ႔exception ေတ ြ ကိ ုre-throw လု ပ္ ႏိ င္ ု ပါ တ ယ္ ။ <?php class customException extends Exception { 128 Youth Dreams 128 .com is an example e-mail ဆ ိ ျ ု ပီ း ေတ ာ႔ ရလာပါ လိ မ္ ႔ မယ ္ ။ code ေတြ ကိ ျ ု ပန္ ရွ င္ း ရရင္ ေတ ာ ႔ 1. } catch(Exception $e) { echo $e->getMessage(). 2.PHP Guide Book Moe Myint Shein //check if if(filter_var($email. customException() class တ စ္ ခု ကိ ု Old exception class ရဲ ႕extension တ စ္ ခု အ ေနနဲ ႔ ဖန္ တီ း ပါ တ ယ္ ။ဒါ ေၾ ကာင္ ့ old exception class က ေနmethods နဲ ႔ properties ေတြ အ ား လံ း ု ကိ ု မ် ဳ ိ း ရိ း ု ဆ က္ ခံ ပါ တ ယ္ ။ errorMessage() က ိ ဖန္ ု တီ း ပါ တ ယ္ ။email address က invalid ျ ဖစ္ ေနမယ္ ဆိ ရင္ ု ဒီ function က error message တစ္ ခု ကိ ု ထု တ္ ေပး တာ ပါ ။ 3. try block ကိ ု execute လု ပ္ ပါ တ ယ္ တ ယ္ ပထ မအေျ ခအေနမွ ာexception တစ္ ခု မျ ဖစ္ ပြ ား ပါ ဘူ း ။ 5. } } catch (customException $e) { echo $e->errorMessage(). ဒု တိ ယ အေျ ခအေနၾ ကမွ ာသာexample ဆ ု တဲ ိ ႔ စာသား ေၾ ကာင္ ့ exception တ စ္ ခု ျ ဖစ္ ပြ ာ း သြ ာ း ပါ တ ယ္ ။ 6.

try block ထဲ မွ ာexception ကိ ု re-throw လ ု ပ္ ႏိ င္ ု ေစဖိ အတ ြ ႔ ု က္ ေနာက ္ ထ ပ္ try block တ စ္ ခု ရွ ေနပါ ိ တ ယ္ ။ 5. return $errorMsg. errorMessage() က ိ ဖန္ ု တီ း ပါ တ ယ္ ။email address က invalid ျ ဖစ္ ေနမယ္ ဆိ ရင္ ု ဒီ function က error message တစ္ ခု ကိ ု ထု တ္ ေပး တာ ပါ ။ $email variable ကိ ုvalid ျ ဖစ္ တဲ ႔email လိ ပ္ စာတစ္ ခု အျ ဖစ္ထား ေပး ထာ း ပါ တ ယ္ ။ဒါ ေပမယ္ ႔example ဆိ တဲ ု ႔ string တစ္ ခု ပါ ေနပါ တယ ္ ။ 4. customException က ိ ု ဖမ္ း လိ က္ ု ျ ပီ း ေတ ာ ႔ error message တ စ္ ခု ထု တ္ ျ ပေပး ပါ တ ယ္ ။ Set a Top Level Exception Handler set_exception_hadnler() function က ေန မဖမ္ း လိ က္ ု ရတဲ ႔ exception ေတ ြ အာ း လံ း ု ကု ိ ကိ င္ ု တြ ယ္ ဖိ အ တြ ႔ ု က္ user-defined function တ စ္ ခု ကိ ု set လ ု ပ္ ေပး ပါ တ ယ္ ။ 129 Youth Dreams 129 .' is not a valid E-Mail address. } } catch (customException $e) { //display custom message echo $e->errorMessage().'.com is not a valid E-Mail address.PHP Guide Book Moe Myint Shein public function errorMessage() { //error message $errorMsg = $this->getMessage(). } } catch(Exception $e) { //re-throw exception throw new customException($email). 3. ျ ဖစ္ ပါ တ ယ္ ။ 1. customException() class တ စ္ ခု ကိ ု Old exception class ရဲ ႕extension တ စ္ ခု အ ေနနဲ ႔ ဖန္ တီ း ပါ တ ယ္ ။ဒါ ေၾ ကာင္ ့ old exception class က ေနmethods နဲ ႔ properties ေတြ အ ား လံ း ု ကိ ု မ် ဳ ိ း ရိ း ု ဆ က္ ခံ ပါ တ ယ္ ။ 2. } } $email = "someone@example. } ?> Output က ေတာ႔ someone@example. try { try { //check for "example" in mail address if(strpos($email. email မွ ာexample ဆ ိ တဲ ု ႔ string ပါ ေနလိ ႔ ု exception ျ ဖစ္ ပြ ား သြ ား ပါ တယ ္ ။ 6. catch block က exception က ိ ဖမ္ ု း ျ ပီ း ေတ ာ ႔ customException တ စ္ ခု ကိ ု re-throws လ ု ပ္ လိ က္ ု ပါ တ ယ္ ။ 7. "example") !== FALSE) { //throw exception if email is not valid throw new Exception($email).com".

PHP Guide Book Moe Myint Shein <?php function myException($exception) { echo "<b>Exception:</b> " . ?> output ကေတ ာ ႔ Exception: Uncaught Exception occurred ဒီ code မွ ာcatch block မပါ ၀င္ ပါ ဘူ းအဲ ဒီ အ စာ းtop level exception handler က ိ သံ ု း ု ပါ တယ ္ ။ဒီ function က ိ ု uncaught exception ေတြ အတ ြ က္ အသ ံ း ု ျ ပဳ သ င္ ပါ ့ တယ ္ ။ Exception အတ ြ က္ ဥပေဒမ် ာ း 1. try block ဒါ မွ မဟု တ္ throw တိ င္ ု း မွ ာအ နည ္ း ဆံ း ု ေတ ာ႔ သတ ္ ဆိ င္ ု တဲ ႔ catch block တစ္ ခု ရွ ရပါ ိ မယ ္ ။ 3. try block တစ္ ခု အ တြ င္ း မွ ာရွ တဲ ိ ႔catch block တစ္ ခု အ တြ င္ း မွ ာexception ေတ ြ ကိ ုthrown (or rethrown) လု ပ္ ႏိ င္ ု ပါ တယ ္ ။ 5. က ် ေနာ ္ တိ ရဲ ႔ ု ႕ application က မွ န္ က န္ တဲ ႔input အမ် ဳ ိ း အစား ေတြ ကိ ုရရွ မယ ္ ိ လိ ႔ေသခ် ု ာေစမွ ာ ျ ဖစ္ ပါ တ ယ္ ။ 130 Youth Dreams 130 . throw new Exception('Uncaught Exception occurred'). Code ေတြ ကိ ု try block ထဲ မွ ာထ ာ း သင္ ပါ ့ တယ္ ။ 2.. $exception->getMessage(). မတူ ညီ တဲ ႔ exception class ေတ ြ အ တြ က္ catch block ေတြ အ မ် ာ း ၾ ကီ းအသ ံ း ု ျ ပဳ ႏိ င္ ု ပါ တ ယ္ ။ 4. } set_exception_handler('myException'). ေနာက္ ထ ပ္ရွ င္ း လင္ း တဲ ႔ ဥပမာကေတ ာ ႔တ စ္ ခု ခု ကိ ုပစ္ ထု တ္ ( throw) လိ က္ ု ျ ပီ ဆိ ရင္ ု အဲ ဒါ ကိ ုျ ပန္ ဖမ္ း(catch) ရပါ မယ ္ ။ PHP Filter PHP Filter ဆ ိ တ ာဘ ာ ု လဲ ? PHP filter က ိ ုစိ တ္ မခ် ရတဲ ႔ေနရာ ေတ ြ က ေနလ ာ မဲ ႔ဥပမာ user ေတြ က သြ င္ း မယ ္ ႔input လိ ဟာ ု မ် ဳ ိ း က လာမယ္ ႔ေဒတ ာ ေတ ြ ကိ ု valid ျ ဖစ္ မျ ဖစ္ နဲ ႔ filter လ ု ပ္ ေပး ဖိ အတ ြ ႔ ု က္ အသ ံ း ု ျ ပဳ ရပါ တ ယ္ ။ user imputer ေတြ ကိ ုစစ္ ေဆ း မယ္validate လ ု ပ္ မယ ္filter လ ု ပ္ မယ္ဒါ ေတ ြ က ဘ ယ္web application မွ ာမဆ ိ ု အေရး ၾ ကီ း တဲ ႔ အစိ တ္ အ ပိ င္ ု း ပဲ ျ ဖစ္ ပါ တ ယ္ ။ PHP filter က ိ ု လြ ယ္ လြ ယ္ ကူ ကူ ျ မန္ ျ မန္ ဆ န္ ဆ န္ filter(စစ္ ခ် ) လု ပ္ ႏိ င္ ု ဖိ အ တြ ႔ ု က္ ဖန္ တီ း ထာ း ျ ပီ း သား ပါ ။ ဘာလိ ႔ ု Filter ကိ သံ ု း ု ရတ ာလဲ ? web application ေတြအား လံ း ု နီ း ပါ း ဟာ ျ ပင္ ပကလ ာတဲ ႔Input ေတြ ေပၚ မွ ာမွ ခိ ီ ေနၾ ု က ပါ တယ ္ ။အမ် ား အား ျ ဖင္ ့ အဲ ဒါ ေတြ က user တစ္ ေယာက ္ ေယာက္ ဆီ က ဒါ မွ မဟ ု တ ္တျ ခာ းweb service လ ိ မ် ု ဳ ိ းapplication တစ္ ခု ဆီ က ေနျ ပီ း ေတာ႔ ပါ ။filter က ိ ု သံ း ု လိ က္ ု မယ္ ဆိ ရင္ ု .

PHP Guide Book Moe Myint Shein က် ေနာ္ တိ ႔အျ ု ပင္ ကလ ာ တဲ ႔data မွ န္ သ မွ ် ကိ ုအျ မဲ တ မ္ းfilter လု ပ္ သ င္ ပါ ့ တယ ္ ။input filtering က application ေတ ြ ရဲ ႕ security နဲ ပတ္ ႔ သ က္ ျ ပီ း ေတ ာ ႔ အေရး အၾ ကီ း ဆံ း ု အခ် က္ တ စ္ ခ် က္ ပဲ ျ ဖစ္ ပါ တယ ္ ။ external data ဆ ိ တ ာဘာေတြ ု လ ည္ း ဆိ ေတ ာ႔ ု - form တစ္ ခု က ေနထည္ ေပး ့ ၾ က တဲ ႔ Input data ေတ ြ - Cookies ေတြ - Web services ေတြ က ေနလာတ ဲ ႔ data ေတ ြ - server variable ေတြ နဲ ႔ - Database query result ေတြ ျ ဖစ္ ပါ တယ ္ ။ Functions and Filters variable တ စ္ ခု ကိ ု filter လု ပ္ ဖိ အ တြ ႔ ု က္ ေအာ က္ ပါ filter function ေတ ြ ထဲ က တ စ္ ခု ကိ ု အသ ံ း ု ျ ပဳ ပါ တ ယ္ ။ - filter_var().တိ က် ေသ ခ် ာတဲ ႔ filter တစ္ ခု ကိ သံ ု း ု ျ ပီ း ေတာ႔ variable တစ္ လံ း ု ကိ ု filter လ ု ပ္ တာ - filter_var_array(). FILTER_VALIDATE_INT)) { echo("Integer is not valid").variable input တ စ္ ခု တ ည္ း ကိ ု ရယ ူ ျ ပီ း ေတာ႔ သူ ကိ ႔ ပဲ ု filter လု ပတာနဲ ႔ - filter_input_array- input variable ေတ ြ အ မ် ား ၾ ကီ း ကိ ုရယူ ထာ း ျ ပီ း ေတာ႔တူ ညီ တဲ ႔ဒါ မွ မဟ ု တ ္မတူ ညီ တဲ ႔filter ေတြ နဲ ႔ filter လု ပ္ တာ ပဲ ျ ဖစ္ ပါ တယ ္ ။ ေအာက ္ ပါ ဥပမာ မွ ာfilter_var() function ကိ အ သံ ု း ု ျ ပဳ ျ ပီ း ေတ ာ႔ integer တစ္ လံ း ု ကိ ု valid ျ ဖစ္ မျ ဖစ္ စစ္ ပါ တ ယ္ ။ <?php $int = 123. } ?> ဒီ အ ထ က္ ပါcode က variable က ိ ု filter လ ု ပ္ ဖိ အတ ြ ႔ ု က္ “FILTER_VALIDATE_INT” filter ကိ ု အသ ံ း ု ျ ပဳ ထား ပါ တ ယ္ ။ Integer က valid ျ ဖစ္ တဲ အတ ြ ႔ က္ output က ေတာ႔ “ Interger is valid”. if(!filter_var($int.တူ ညီ တဲ ႔ဒါ မွ မဟ ု တ ္မတူ ညီ တဲ ႔filter ေတ ြ ကိ သံ ု း ု ျ ပီ း ေတ ာ ႔variable ေတြ အ မ် ား ၾ ကီ း ကိ ုfilter လု ပ္ တာ ။ - filter_input. လ ိ ရပါ ႔ ု လိ မ္ ႔ မယ ္ ။ integer မဟ ု တ္ တဲ ႔ variable ဥပမာ123abc လ ိ စမ္ ႔ ု း ၾ ကည ္ မယ ္ ့ ဆိ ရင္ ု “Integer is not valid” ဆ ိ ျ ု ပီ း ေတာ႔ ထု တ္ ေပး မွ ာ ျ ဖစ္ ပါ တ ယ္ ။ Validating and Sanitizing 131 Youth Dreams 131 . } else { echo("Integer is valid").

if(!filter_var($var. $int_options = array( "options"=>array ( "min_range"=>0. } else { echo("Integer is valid"). $int_options)) { echo("Integer is not valid"). } ?> ဒီ code မွ ာoptions ေတ ြ ကိ ု option လိ အ မည္ ႔ ု ေပး ျ ပီ း ေတ ာ႔ associative array တ စ္ ခု ထဲ မွ ာထည ္ ထ ား ့ ရပါ တယ ္ ။flag ကိ အသ ံ ု း ု ျ ပဳ တဲ အ ခါ ႔ မွ ာေတ ာ ႔ သူ က array ထဲ မွ ာရွ ေနဖိ ိ မလ ိ ႔ ု အ ပ္ ု ပါ ဘူ း ။ integer က 300 ျ ဖစ္ တဲ အ တြ ႔ က္ သူ က သ တ္ မွ တ္ ထ ား တဲ ႔ အတ ိ င္ ု း အတ ာrange ထဲ မွ ာမရွ ေနပါ ိ ဘူ း ။ဒါ ေၾ ကာင္ ့ ဒီ code က ိ ု run ရင္ “Integer is not valid” လိ ျ ႔ ု ပန္ ပါ မယ္ ။ Validate Input form တစ္ ခု က input form တစ္ ခု ကိ ု validate လု ပ္ ဖိ ႔ ု ၾ ကိ ဳ း စား ၾ ကရေအာင္ ။ 132 Youth Dreams 132 . "max_range"=>256 ) ). FILTER_VALIDATE_INT.PHP Guide Book Moe Myint Shein filter ႏွ စ္ မ် ဳ ိ း ရွ ပါ ိ တ ယ္ ။ Validating filters နဲ ႔ Sanitizing filters တိ ႕ ု ပါ ။ Validating filters ေတ ြ ကိ ု - user input ေတြ ကိ ု validate လ ု ပ္ ဖိ ႔ ု - format rule ေတ ြ ကိ တိ ု တိ က် က် သ တ္ မွ တ္ ေပး ဖိ ႔ ု (ဥပမယ URL နဲ ႔ EMAIL) - ေအာင္ ျ မင္ တဲ အ ခါ ႔ ေမွ ် ာ္ လ င္ ထ ား ့ တဲ ႔ အမ် ဳ ိ း အစာ း ကိ ထု ု တ္ ေပး ျ ပီ း ေတာ႔ validate မျ ဖစ္ တဲ အ ခါFALSE က ိ ႔ ု ျ ပန္ ထု တ္ ေပး ဖိ ႔ ု အသ ံ း ု ျ ပဳ ပါ တ ယ္ ။ Sanitizing filters ေတ ြ ကိ ု ေတ ာ႔ - string တစ္ ခု ထဲ မွ ာ ရွ တဲ ိ ႔ character တ စ္ ခု ခု ေတ ြ ကိ ု ခြ င္ ျ ့ ပဳ မလားခြ င္ မျ ့ ပဳ ဘူ း လ ား ဆိ တ ာအတြ ု က္ သံ း ု ပါ တ ယ္ ။ - data format rules မရွ ိ ပါ ဘူ း - အျ မဲ တ မ္ းString က ိ သ ာreturn ျ ု ပန္ ေပး ပါ တ ယ္ ။ Options and Flags options နဲ ႔ flags တ ိ ကိ ႔ ု ု ေရြ း ခ် ယ္ ထ ား တဲ ႔ filters ေတြ အတ ြ က္ အပိ ု filter options ေတြ ထ ပ္ ေပါ င္ း ထည ္ ဖိ ့ အသ ံ ႔ ု း ု ျ ပဳ ပါ တယ္ ။ မတ ူ ညီ တဲ ႔ filterေတ ြ မွ ာမတ ူ ညီ တဲ ႔ Options နဲ ႔ flags ေတ ြ ရွ ၾ ိ က ပါ တယ ္ ။ ေအာက ္ ပါ ဥပမာ မွ ာfilter_var() function ရယ ္ min_range နဲ ႔ max_range option ေတ ြ ကိ ု သံ း ု ျ ပီ းinteger တစ္ ခု ကိ ု က် ေနာ္ တိ ႔ ု validate လု ပ္ ပါ တယ ္ ။ <?php $var=300.

com/ ျ ဖစ္ ေနမယ္ ဆိ ရင္ ု sanitizing လု ပ္ ျ ပီ း တဲ အ ခါ ႔ မွ ာ ေတ ာ ႔ http://www.moemyintshein.PHP Guide Book Moe Myint Shein ပထ မဆံ း ု လု ပ္ ဖိ လု ႔ ု အ ပ္ ိ တ ာက က် ေနာ္ တိ ႔ ု ရွ ာေဖြ ေနတဲ ႔ input data ရွ ဖိ ိ ႔ ု ေသ ခ် ာေစဖိ ျ ႔ ု ဖစ္ ပါ တယ ္ ။ျ ပီ း တဲ အ ခါ ႔ filter_input () function က ိ သံ ု း ု ျ ပီ း ေတာ႔ input data ကိ ု filter လု ပ္ ပါ မယ ္ ။ ေအာက ္ ပါ ဥပမာ မွ ာinput variable “email” ကိ ု PHP page က ိ ပိ ု ေပး ႔ ု ပါ တ ယ္ ။ <?php if(!filter_has_var(INPUT_GET. POST type ရဲ ႕url input က ရွ ိ မရွ ိ စစ္ ပါ တယ ္ ။ 2.com လ ိ ျ ႔ ု ဖစ္ သြ ာ း မွ ာပါ ။ Filter Multiple Inputs Form တစ္ ခု အ ေနန႔ အျ မဲ တ မ္ းinput fileld တ စ္ ခု ထက ္ မက ရွ ပါ ိ တယ ္ ။filter_var ဒါ မွ မဟု တ္ filter_input function ေတ ြ ကိ ု တခါ ျ ပီ း တ စ္ ခါ ေခၚ ရတ ာမ် ဳ ိ း မျ ဖစ္ ေစဖိ ႔ ု က် ေနာ တိ ္ က filter_var_array ဒါ ႔ ု မွ မဟ ု တ္ filter_input_array စတ ဲ ႔ function ေတ ြ ကု ိ အသံ း ု ျ ပဳ ၾ ကပါ တ ယ္ ။ ဒီ ဥပမာမွ ာက ် ေနာ္ တိ က GET variable သ ံ ႔ ု း ု ခု ကိ ု filter လ ု ပ္ ဖိ အ တြ ႔ ု က္ filter_input_array() function ကိ အသ ံ ု း ု ျ ပဳ ပါ တ ယ္ ။ လက ္ ခံ ရရွ တဲ ိ ႔ GET variable က နာ မည ္ တ စ္ ခု အသ က္ တ စ္ ခု နဲ ႔ အီ း ေမး လိ ပ္ စာတစ္ ခု တိ ႔ ု ျ ဖစ္ ပါ တ ယ္ ။ <?php $filters = array ( "name" => array ( 133 Youth Dreams 133 . FILTER_VALIDATE_EMAIL)) { echo "E-Mail is not valid".moååemyintsøhein. ရွ တ ယ္ ိ ဆိ ရင္ ု အဲ ဒါ ကိ ု sanitize(valid မျ ဖစ္ တဲ ႔ character) ေတ ြ ကိ ဖယ ္ ု ထု တ္ ျ ပီ း ေတ ာ ႔ $url variable ထ ဲ မွ ာ သိ မ္ း ေပး ပါ တ ယ္ ။ တက ယ္ လိ ႔ ု Input string က http://www. } else { echo "E-Mail is valid". } else { if (!filter_input(INPUT_GET. } } ?> ဒီ ဥပမာမွ ာinput ျ ဖစ္ တဲ ႔ (URL) ကိ ု “POST” Method သ ံ း ု ျ ပီ း ေတာ႔ ပိ ေပး ႔ ု ထာ း ပါ တ ယ္ ။ 1. "email")) { echo("Input type does not exist"). "email".

$filters). } elseif(!$result["email"]) { echo("E-Mail is not valid. "options"=>array ( "min_range"=>1. "email"=> FILTER_VALIDATE_EMAIL. email variable ေတ ြ ကိ ု စစ္ ပါ တ ယ္ ။ဒီ input ေတြ ထဲ က တ စ္ ခု ခု invalid ျ ဖစ္ တ ယ္ ဆိ ရင္ ု filter_input_array() function ျ ပီ း တဲ အ ခါ ႔ မွ ာinput variable က FALSE ျ ဖစ္ မွ ာျ ဖစ္ ပါ တယ ္ ။ filter_input_array() function ရဲ ႕ဒု တိ ယ parameter က array လ ည္ း ျ ဖစ္ ႏိ င္ ု သလ ိ ု single filter ID တစ္ ခု လည ္ း ျ ဖစ္ ႏိ င္ ု ပါ တယ ္ ။ တက ယ္ လိ ႔ ု parameter က single filter ID ဆ ိ ရင္ ု input array ရဲ ႕ တ န္ ဖိ း ု ေတ ြ အာ း လံ း ု က သတ ္ မွ တ္ ထာ း တဲ ႔ filter အား ျ ဖင္ ့ filter လ ု ပ္ သြ ား မွ ာျ ဖစ္ ပါ တ ယ္ ။ parameter က array ျ ဖစ္ တယ ္ ဆိ ရင္ ု ေအာက္ ပါဥပေဒေတ ြ ကိ လိ ု က္ ု နာရပါ မယ္ ။ - 134 (age input variable လ ိ မ် ု ဳ ိ း ) array key တစ္ ခု အ ေနနဲ ႔ input variable တ စ္ ခု ပါ ၀င္ တဲ ႔ associative array တစ္ ခု ျ ဖစ္ ရပါ မယ္ ။ array တန္ ဖိ း ု က filter ID ဒါ မွ မဟ ု တ္ filter. input variable ေတြ ရဲ ႕ အမည္ ပါ ၀င္ တဲ ႔ array တ စ္ ခု ကိ ု သ တ္ မွ တ္ ပါ တ ယ္ ျ ပီ း ေတ ာ ႔input variables ေတြ အတ ြ က္ filter ေတ ြ ကိ လ ည္ ု းသတ ္ မွ တ္ ပါ တယ္ ။ 2.PHP Guide Book Moe Myint Shein "filter"=>FILTER_SANITIZE_STRING ). if (!$result["age"]) { echo("Age must be a number between 1 and 120. $result = filter_input_array(INPUT_GET. valid input ေတ ြ ရဖိ အတ ြ ႔ ု က ္$result variable အတ ြ င္ း မွ ္ ာage. "max_range"=>120 ) ). } else { echo("User input is valid").<br />"). "age" => array ( "filter"=>FILTER_VALIDATE_INT.age. flag နဲ ႔ option ေတ ြ ကိ ု သ တ္ မွ တ္ ေပး ထ ား တဲ ႔ array တစ္ ခု ျ ဖစ္ ရပါ မယ္ ။ Youth Dreams 134 .email) ဆ ိ တဲ ု ႔ Input သ ံ း ု ခု ရွ ပါ ိ တယ ္ ျ ပီ း ေတာ႔ GET method နဲ ပိ ႔ ထ ား ႔ ု ပါ တ ယ္ ။ 1. filter_input_array() function ကိ ု GET input variable ေတ ြ နဲ ႔ က် ေနာ္ တိ ႔ ု ဖန္ တီ း ထား တဲ ႔ array တ ိ နဲ ႔ ု ႔ ေခၚ လိ က္ ု ပါ တ ယ္ ။ 3. } ?> ဒီ ဥပမာမွ ာ(name. ).<br />").

" ". $string). FILTER_CALLBACK. echo filter_var($string. “_” ေတ ြ ကိ ု whitespaces ေတ ြ အျ ဖစ္ ေျ ပာင္ း ေပး မယ္ ႔ fuction တစ္ ခု ကိ ု ဖန္ တီ း ပါ တယ ္ ။ 2.PHP Guide Book Moe Myint Shein Using Filter Callback user defined function တစ္ ခု ကိ ု ေခၚ သံ း ု ျ ပီ း ေတာ႔ FILTER_CALLBACK filter က ိ သံ ု း ု ျ ပီ းfilter လု ပ္ ဖိ ႔ ု ျ ဖစ္ ႏိ င္ ု ပါ တ ယ္ ။ ဒီ နည္ း လ မ္ းနဲ ႔ က် ေနာ္ တိ ႔ ု data filtering ကိ ု အျ ပည ္ အ ၀ထိ ့ န္ း ခ် ဳ ပ္ ႏိ င္ ု ပါ တယ ္ ။ က် ေနာ္ တိ အ ေနနဲ ႔ ု ႔ ကိ ယ္ ု ပိ င္ ု User defined function က ိ ဖန္ ု တီ း ႏိ င္ ု သလိ ု ရွ ျ ိ ပီ း သ ားPHP function တ စ္ ခု ကိ ု သံ း ု ႏိ င္ ု ပါ တယ ္ ။ ေအာက ္ ပါ ဥပမာ မွ ာက ် ေနာ တိ ္ က “_” ေတြ ႔ ု ကိ ု whitespaces ေတြ အျ ဖစ္ ေျ ပာ င္ း ေပး တဲ ႔ user created function တ စ္ ခု ကိ ု အသံ း ု ျ ပဳ ပါ တ ယ္ ။ <?php function convertSpace($string) { return str_replace("_". FILTER_CALLBACK filter ရယ္ က် ေနာ္ တိ ႔ ု function ပါ တဲ ႔ array တ စ္ ခု ရယ ္ နဲ အ တူ ႔ filter_var() function ကိ ေခၚ ု သံ း ု ပါ တ ယ္ ။ 135 Youth Dreams 135 . } $string = "Peter_is_a_great_guy!". array("options"=>"convertSpace")). ?> output ကေတ ာ ႔ Peter is a great guy! ျ ဖစ္ ပါ တ ယ္ ။ အလု ပ္ လု ပ္ ပံ က ေတာ႔ ု 1.

moemyintshein.PHP Guide Book Moe Myint Shein Conclusion က် ေနာ္ ရဲ ႔ ႕ စာ အု ပ္ ကိ ု ဖတ ္ ျ ပီ း ေလ ႔ လ ာၾ က သူ အ ား လံ း ု ကိ ေက ် ု း ဇူ း တ င္ ပါ တ ယ္ ခင္ ဗ် ာ။ က် ေနာ္ အတတ ္ ႏိ င္ ု ဆံ း ၾ ု ကိ ဳ း စား ထား ပါ တယ ္ ။ လိ အ ပ္ ု တ ာမ် ား ရွ ရင္ေ၀ဖန္ ိ အၾ ကံ ျ ပဳ ႏိ င္ ု ၾ ကပါ တ ယ္ ။ ဒီ ေနရာမွ ာ ရပ္ မထား ဘဲဆ က္ လ က္ ေလ ႔ လ ာသြ ား ႏိ င္ ု ဖိ ႔ ု အတြ က ္English လ ိ ေရး ု ထာ း တဲ ႔PHP စာအု ပ္ ေတ ြ ကိ ုက် ေနာ္ ဘ ေလ ာ ႔ မွ ႔ ာ တ င္ ေပး ထာ း ပါ မယ ္ ။ေဒါ င္ း လု ပ္ ဆြ ဲ ျ ပီ းဆက ္ လက ္ ေလ ႔ လ ာသ ြ ာ း ၾ က ပါ ။အာ း လံ းက ိ ု ယ္ ု ျ ဖစ္ ခ် င္ တ ာေတြ ကိ ု ေအာ င္ ျ မင္ ေအာင္ လု ပ္ ေဆ ာင္ ႏိ င္ ု ၾ က ပါ ေစ။ Moe Myint Shein Email: moemyintsheinster@gmail.com Web: www.com 136 Youth Dreams 136 .