ကဗ်ာ/ရသ/နည္းပညာ

Create C box

May 11, 2014

အရင္ဆံုးဒါေလးေတြမွတ္ထား
CREATE TABLE IF NOT EXISTS tableName(
id int(11) NOT NULL AUTO_INCREMENT,
title VARCHAR(150) NOT NULL,
bodytext TEXT NOT NULL,
created VARCHAR(100) NOT NULL,
PRIMARY KEY (id)
)
ဒီကုတ္က PHP Code မဟုတ္ပါဘူး mysql database မွာသံုးတဲ့ Query Language ေတြပါ။
အေပၚကေျပာတာကtablename အမည္နဲ႕ ရွိၿပီးသား database ထဲမွာ table တစ္ခုေဆာက္မယ္လို႔ေျပာတာ
အဲဒီ table ထဲမွာ id က integer အမ်ိဳးအစားျဖစ္ရမယ္ Null ခြင့္မျပဳဘူး AutoIncrement အလိုအေလွ်ာက္
တစ္တိုးတိုးေပးသြားရမယ္လို႔ ေၾကျငာေပးတာပါ။ ေနာက္ထပ္ title ,bodytext စတာေတြကုိလည္း ေၾကျငာေပး
ထားပါတယ္။အလိုအေလွ်ာက္တစ္တိုးတာမလိုခ်င္၇င္AUTO_INCREMENT ဆိုတာေလးျဖဳတ္လိုက္ယံုပါ။
Nullable ျဖစ္ခ်င္ရင္လည္းNOT NULL ကုိခ်န္ထားခဲ့ယံုပါပဲ ။Relational database အမ်ိဳးအစားျဖစ္တာေၾကာင့္
PRIMARY KEY လိုပါတယ္ PRIMARY KEY id ကုိေပးလိုက္ပါတယ္ ။

INSERT INTO `tableName` (`tablecolumn1`,`tablecolumn2`) VALUES ('value1','value2')
ဒါက table ထဲကုိ data လွမ္းထည့္လိုက္တာပါ။

"SELECT * FROM `tablename` ဆိုတာက table ထဲက record အားလံုးယူမယ္လို႔ေျပာတာပါ

UPDATE tablename SET `title`='$title',`bodytext`='$bdtxt' WHERE `id`='$id
table ထဲကid=$id ျဖစ္တဲ့ row အတြက္ title ကုိ PHP ရဲ႕ $title variable ထဲကdata ,bodytext ထဲကုိေတာ
့ PHP ရဲ႕ $bdtxt variable ထဲကdata အစားထိုးထည့္သြင္းမယ္လို႔ေျပာတာပါ။
Quety ရဲ႕ name ေတြကုိ `` ႏွစ္ခုၾကားေရးတာက ပိုၿပီး Safe ျဖစ္ေစပါတယ္။မထည့္လည္းရပါတယ္။
Query language ဟာသပ္သပ္ထပ္ေလ့လာရမယ့္ နည္းပညာတစ္ခုျဖစ္ပါတယ္။
အခုေျပာသြားတာေတြကုိ သေဘာတရားေလာက္ေတာ့ေသခ်ာနားလည္ေအာင္လုပ္ပါ။
အရမ္းခက္တာကုိမလုပ္ေသးဘူး လြယ္တာေလးစလုပ္ၾကည့္မယ္ ။
WAMP server ကုိ run ၿပီး phpmyadmin ထဲကုိသြားလိုက္ပါ ။ database တစ္ခု create လုပ္ပါ ။
အခု WWW folder ထဲမွာ Cbox ဆိုတဲ့နာမည္နဲ႕ folder တစ္ခုထပ္ေဆာက္လိုက္ ။ အဲဒီထဲမွာ
index.php နာမည္နဲ႕ PHP ဖိုင္တစ္ဖိုင္ထပ္ဖန္တီး ။
ၿပီးရင္အဲဒီဖိုင္ကုိဖြင့္ HTML Code ေတြေရးမယ္ ။အခုစမ္းသပ္မွာက Website ေတြမွာေတြ႕ရတတ္တဲ့ Cbox
ေလးတစ္ခုလုပ္ၾကည့္မွာ name ရယ္ message ရယ္ပါမယ္ submit ခလုပ္ကုိႏွိပ္ရင္ အေပၚဘက္ျခမ္းမွာ
အဲဒီ Message ေလးကုိလာျပေပးရမယ္ ။ အိုေခ ... စေရးမယ္
<!DOCTYPE HTML>

<html lang="en-US">

<head>

<meta charset="UTF-8">

<title></title>
</head>

<body>
<div>
<p>NAME</p>
<article>MESSAGE</article>
<hr/>
</div>
<br/>
<div>
<form action="index.php" method="post">
Name:<input type="text" name="name"/>
Message:<textarea name="message"></textarea>
<input type="submit" value="submit" name="submit"/>
</form>
</div>

</body>

</html>

browser မွာ run ၾကည့္ ... အဆင္ေျပတယ္ထင္တယ္ ။ အခု အဲဒီ HTML ေတြအားလံုးရဲ႕ အေပၚမွာ PHP ကုိ
စေရးမယ္။ ပထမ database နဲ႕ခ်ိတ္မယ္ ။ လံုျခံဳမွဳအားနည္းတဲ့ mysql_ Code အစား mysqli_ ကုိေျပာင္းသံုးထားတယ္။
<?php
$dbHost='localhost';
$dbUser='root';
$dbPass='';
$dbName='cbox';
$conn=mysqli_connect($dbHost,$dbUser,$dbPass,$dbName);
?>
mysqli_connect() က database နဲ႕ခ်ိတ္ဖို႕ ေဆာင္ရြက္ေပးပါတယ္ ။အခုဆို database နဲ႕ခ်ိတ္မိေနပါၿပီ။
HTML မွာတုန္းက submit ကိုႏွိပ္ရင္ index.php ကုိသြားမယ္ Post method သံုးမယ္လို႕ေျပာထားၿပီးပါၿပီ
ဘယ္ data ေတြလည္းဆိုေတာ့ name နဲ႕ message ထဲက data ေတြ အဲဒါကုိျပန္ျပဖို႕
<p>NAME</p>
<article>MESSAGE</article> ကုိလည္းထည့္သြင္းထားၿပီးသား... PHP မွာ post နဲ႕ ေရာက္လာမယ့္ data
ကုိ $_POST[] ဆိုတဲ့ Global variable နဲ႕ဖမ္းယူရတယ္ ။ အခု name နဲ႕ message မွာ data ရွိမရွိၾကည့္မယ္
ရွိရင္ $_POST[]နဲ႕လက္ခံမယ္ ။ၿပီးရင္ database ထဲထည့္မယ္ ။
if(isset($_POST['submit'])){
$name=$_POST['name'];
$message=$_POST['message'];
if(empty($name) OR empty($message)){
echo "<p style='color:red'>Please write something.</p>";
}else{
$sql="INSERT INTO `testing` (`name`,`message`) VALUES ('$name','$message')";
$query=mysqli_query($conn,$sql);
}
}
isset() method က ရွိမရွိစစ္ေပးတယ္။function ေတြအေၾကာင္းေျပာတုနး္က ပါၿပီးသား ။
ဒါဆိုရင္ testing ဆိုတဲ့ table ထဲ name နဲ႕ message ဆိုတဲ့ column မွာ data ေတြသြားထည့္ေပးလုိက္ပါၿပီ။
ဒီလိုသြားထည့္ေပးႏိုင္ဖို႕ testing ဆိုတဲ့ table ေဆာက္ရမယ္ အဲ့ဒီထဲမွာ id, name,message ဆိုတဲ့ column
ႀကိဳဖန္တီးထားဖို႔လိုပါတယ္ ။ အဲဒါကုိကုိယ့္ဖာသာကုိယ္ေဆာက္ၾကည့္ပါ ။

အခု Cbox ေနာက္ဆံုးတစ္ဆင့္ table ထဲက data ေတြကုိ ျပန္ထုတ္ျပဖို႔ပါ ။
name,message တစ္တြဲ name,message တစ္တြဲထုတ္ျပရမွာပါ ။ဆယ္ခါေရးရင္ဆယ္တြဲထြက္ရပါမယ္။
ဒီေတာ့ပထမ array ထဲမွာ name နဲ႕ Message ကုိတြဲထား ေနာက္ ထပ္ array တစ္ခုကမွ ေရးသမွ် အႀကိမ္
အတိုင္း looping နဲ႕Output ထုတ္ျပ ။ ဒါဆိုအဆင္ေျပပါလိမ့္မယ္။ အဲဒီလိုျဖစ္ဖို႕ ေရးၾကည့္မယ္။
?> အတြင္းမွာပဲေရးရမယ္။
$sql="SELECT * FROM `testing` ";
$query=mysqli_query($conn,$sql);
$rows=array();
while($row=mysqli_fetch_assoc($query)){
$rows[]=array(
'name'=>$row['name'],
'message'=>$row['message']
);
}
mysqli_fetch_assoc() က data ေတြကို associate array အျဖစ္ထုတ္ထားေပးပါတယ္။
associate array ရဲ႕ေကာင္းတဲ့အခ်က္က index ဟာ no. မဟုတ္လည္းရပါတယ္။
array([0]=>'AungAung',[1]=>'PaiOo',[2]=>'Shanlay');ဆိုတဲ့ ပံုစံမ်ိဳးကုိ associate arrayမွာ
array(['Mandalay']=>'AungAung',['Monywa']=>PaiOo,['InHome']=>Shanlay);
ပံုစံမ်ိဳးဖန္တီးလို႕ရပါတယ္ ။
အခု Output ျပဖို႔ HTML ထဲမွာ PHP ေရာၿပီးေရးမယ္ ။
နမူနာထည့္ထားတဲ့
<p>NAME</p>
<article>MESSAGE</article>
ေနရာမွာ PHP နဲ႕အစားသြင္းအေျဖထုတ္မယ္ ။ looping နဲ႕ထုတ္မွာမို႕ Looping statement
ေလးေရာေရးရေအာင္ ။
<body>
<?php foreach($rows as $row) { ?>

<div>
<p><?php echo $row['name']?></p>
<article><?php echo $row['message']?></article>
<hr/>
</div>
<?php } ?>
<br/>

လံုေလာက္ၿပီ ။ Server မွာသြား run ၾကည့္ ။ Shout box လို႕ ေခၚေခၚ cbox ေခၚေခၚ ေခၚလို႔ရတဲ့
Basic Web app ေလးဖန္တီးၿပီးပါၿပီ ။ တစ္ခုသတိထားမိလိမ့္မယ္ ။အခုေရးျပသြားတာက OOP Style
မဟုတ္ေသးဘူးဆိုတာ ။ လြယ္တာေလးအရင္လုပ္ျပမယ္လို႔ ေျပာထားတယ္ေလ ။
OOP Style နဲ႕ ေနာက္က်ေတာ့စမ္းၾကည့္ရေအာင္ ။စိတ္ပါရင္အခုရွင္းျပတာေလးကုိပဲ OOP
အေနနဲ႕ေျပာင္းေရးၾကည့္ပါလား ??
Read more ...

Connect database using PDO

May 11, 2014

server ထဲဖိုဒါတစ္ခုအရင္ေဆာက္လိုက္ပါ ။ Database ကုိ PDO(PHP Data Object) နည္းနဲ႕ခ်ိတ္ဆက္တာကုိရွင္းျပမွာပါ။
PDO က PHP 5.2 ေနာက္ပိုင္းမွပါလာတာလို႔သိရပါတယ္။ PDO ကုိျမန္ဆန္လြယ္ကူမွဳရွိတာရယ္၊Security အားေကာင္းတာရယ္
ေၾကာင့္ ေနာက္ပိုင္းမွာသူ႔ကုိပဲသံုးဖို႔ တိုက္တြန္းလာၾကပါတယ္။PDOက Class တစ္ခုပါ ဒါေၾကာင့္သူ႕ကုိေခၚသံုးတဲ့အခါ 'new' keyword
နဲ႕ instantiate လုပ္ေပးရမွာပါ။ စမေလ့လာမီွ PHP myadmin ထဲမွာ အဆင္ေျပတဲ့နာမည္နဲ႕database တစ္ခုအရင္ဖန္တီးထားလိုက္ပါဦး။
ဖိုဒါထဲမွာ class.database.php နာမည္နဲ႕ ဖိုင္တစ္ဖိုင္ေဆာက္လုိက္ပါ။အဲ့ဒီဖိုင္ထဲမွာ class တစ္ခုေဆာက္မယ္
<?php
class dbConnection{
protected $db_conn;

public $db_name='shoutbox';//ဒီေနရာမွာသူငယ္ခ်င္းဖန္တီးထားတဲ့ database name ကုိေရးေပး
public $db_user='root'; // local server တိုင္းကuser root နဲ့ Pass က Null ပဲရွိတာမ်ားတယ္။
public $db_pass='';
public $db_host='localhost';
}
?>
public,protected တို႔က Access modifire ေတြ ။ဘယ္သူေတာ့ခြင့္ျပဳတယ္ ဘယ္သူေတာ့ခြင့္မျပဳဘူးလို႔သတ္မွတ္တာ။Public အစား
var လို႔ေရးလည္းရပါတယ္။ ဘယ္ class ကမဆိုယူသံုးလို႔ရတယ္လို႔ေျပာတာပါ။protected ကေတာ့လက္ရွိ class နဲ႕ child class မွာ
ရပါတယ္။က်န္တဲ့ class ေတြကေနလွမ္းေခၚလို႔မရပါဘူး ။ ဒါကုိရွင္းျပခဲ့ၿပီးၿပီလိုေတာ့ထင္ပါတယ္။
ဒါဆို Server data အတြက္ variable ေၾကျငာတာၿပီးၿပီ။ database ခ်ိတ္ေတာ့မယ္ ။OOP way ဆိုေတာ့ function တစ္ခုေခၚသံုးရေအာင္။
function connect(){
$this->db_conn=new PDO("mysql:host=$this->db_host;dbname=$this->db_name",$this->db_user,$this->db_pass);
return $this->db_conn;
}
လက္ရွိ active ျဖစ္ေနတဲ့ class ထဲက data ကုိေခၚသံုးခ်င္ရင္ $this->လို႔သံုးရတယ္ ။ PDO ေရးထံုးက database အမ်ိဳးအစားကုိကြင္း
ထဲမွာထည့္ေၾကျငာေပးရလို႕ PDO("mysql: လို႕စေရးရတယ္။တစ္ျခား database အမ်ိဳးအစားဆိုလည္း အဲဒီအမ်ိဳးအစားေပါ့။ဥပမာဆို
PDO("odbc: အဲဒီလို ။ ၿပီးသူ႔ မူလClass ထဲကvariable host နဲ႕ dbname ကုိလက္ရွိ Server က data
ေတြ နဲ႕ထည့္သြင္းသတ္မွတ္ေပးရတယ္ ။ ဒါေၾကာင့္("mysql:host=$this->db_host;dbname=$this->db_name" လို႕ျဖစ္လာတယ္။
ဒါနဲ႕မျပီးေသးဘူး။က်န္တဲ့ db user နဲ႕ pass ကုိ ေကာ္မာေလးနဲ့ဆက္ထည့္ေပးရေသးတယ္။ဒီေတာ့
PDO("mysql:host=$this->db_host;dbname=$this->db_name",$this->db_user,$this->db_pass) ရယ္လို႔ျဖစ္လာတယ္။
တစ္ေၾကာင္းတည္းနဲ႕ ခ်ိတ္ဆက္မွဳ အၿပီးအစီးရပါတယ္.. မခက္ပါဘူးေနာ္။return $this->db_conn က
function ဆိုေတာ့ return value ထည့္ေပးလိုက္တာ ။ ခ်ိတ္ဆက္မွဳကုိ function မသံုးဘဲလုပ္မယ္ဆိုရင္ return keyword မလိုဘူး။
ေသခ်ာေအာင္ try - catch နဲ႕ စစ္ၾကည့္ရေအာင္ ။db_conn ကုိရိုးရိုး if နဲ႔စစ္လိုက္မယ္ဆိုရင္လည္းရပါတယ္ ။ အခုေတာ့ try-catch ပဲသံုး
ၾကည့္မယ္ ။ ေစာေစာက Code မွာ ဒီလိုေလးျဖည့္ေရးလိုက္မယ္။
function connect(){
try{
// ေစာေစာက PDO နဲ႕ခ်ိတ္တဲ့ ကုတ္
} catch (PDOException $e){
return $e->getmessage();
}
}
catch ထဲမွာ error ထုတ္ျပဖို႕ သတ္မွတ္ထားၿပီးသား Exception ေတြရွိပါတယ္။ အဲ့ဒီ exception ေတြကုိ $e ထဲ Catch သတ္မွတ္ေပးရပါတယ္။
အခုက PDO ခ်ိတ္ဆက္မွဳျဖစ္လို႔ Exception က PDOException $e ရယ္လို႔ျဖစ္လာပါတယ္။တျခားဟာေတြအတြက္တျခား exception ေတြရွိပါတယ္။
ေစာေစာကေရးခဲ့တာေတြျပန္ၾကည့္ရေအာင္။ ကုတ္အျပည့္အစံုကဒီလိုျဖစ္သြားလိမ့္မယ္။
<?php
class dbConnection{
protected $db_conn;

public $db_name='shoutbox';
public $db_user='root';
public $db_pass='';
public $db_host='localhost';

function connect(){
try{
$this->db_conn=new PDO("mysql:host=$this->db_host;dbname=$this->db_name",$this->user,$this->db_pass);
return $this->db_conn;
} catch (PDOException $e){
return $e->getmessage();
}
}
}
?>
server မွာ run ၾကည့္ Error မရွိရင္ ခ်ိတ္ဆက္မွဳအိုေခေနၿပီ။ PDO နဲ႕ခ်ိတ္ဆက္မွဳကုိဒီေလာက္နဲ႕ပဲနားလိုက္ပါရေစ။
လက္ေတြ႕မွာေတာ့ ဒီ class ကုိတစ္ဖိုင္သပ္သပ္ထား ၿပီး data အသြင္းအထုတ္အတြက္ သပ္သပ္
function တစ္ခုေရး ၿပီး manage လုပ္ေပးရမွာပါ ။
Read more ...

Understanding JSON

May 11, 2014

JSON ဆိုတာ JavaScript Object Notation ကုိေခၚတာပါ ။
စာသားအခ်က္အလက္ေတြကုိ User ဆီမွာ ျမန္ျမန္ဆန္ဆန္Out put ေဖာ္ျပေပးႏိုင္ဖို႕အတြက္ အဓိကသံုးပါတယ္ ။
ဒီလိုေဖာ္ျပ တဲ့ေနရာမွာ JSON မသံုးပဲတစ္ျခား WebTechnology တစ္ခုခုသံုးမယ္ဆုိ လည္းရပါတယ္ ။
ဒါေပမယ့္လည္း ေရးဖို႕လြယ္ကူတာ၊ Light weight ျဖစ္တာ ၊ Lenguage Strong
ျဖစ္တာ စတဲ့အားသာခ်က္ေတြေၾကာင့္ JSON ဟာ Web နည္းပညာနယ္ပယ္မွာေရပန္းစားလာခဲ့ာျဖစ္ပါတယ္။
စတင္မယ့္ Beginner ေတြအတြက္ JSON တစ္ခုဘယ္လိုေရးလို႕ရႏိုင္မလဲ ။
var ဆိုတဲ့Keyword သံုးၿပီးvariable ေၾကျငာရပါတယ္။ သူက String အေနနဲ႕ပဲအလုပ္လုပ္တာျဖစ္လို႕ Data type
ထည့္ေပးဖို႕မလိုပါဘူး ။variable ကုိ ' abe' (or) "abc" ဆိုၿပီးဆင္ေျပသလိုေရးလို႕ရပါတယ္ ။ေၾကျငာၿပီးတာနဲ႕ အဲဒီ data ကုိ
Object အေနနဲ႕တန္းသံုးလို႕ရပါၿပီ ။JSON string ေတြမွာObject ေတြကို name : value ပါတဲ့စံုတြဲေလးေတြအျဖစ္ ေၾကျငာေပး
ရပါတယ္။ array ပံုစံမ်ိဳးသံုးမယ္ဆိုရင္ ေထာင့္ကြင္း [ ႏွင့္ ] ေဖာ္ျပရပါတယ္။ var အစုအေ၀းကုိ Scope { နဲ႕ } ပိတ္ေပးရပါတယ္။
Value တစ္ခုနဲ႕တစ္ခုၾကားမွာေတာ့ (,) ေလးနဲ႕ခြဲထားေပးရပါတယ္။
နားရွင္းသြားေအာင္ေအာက္ကေရးျပတာေလးကုိၾကည့္ၾကည့္ပါ။
var jobject= {
"name": "Jhon",
"age": "33",
"phone": "09-33046955",
"movies"'Spiderman','Batman','Superman']
};
name နဲ ့ value ေလးကိုေတာ့ (:) နဲ ့ခြဲထားပါတယ္..။
"movies"'Spiderman','Batman','Superman'] ဆိုတာက array ပါ ။
လက္ေတြ႕ Web form တစ္ခုအစမ္းေလးေရးၾကည့္ရေအာင္ ။ Simple Html form တစ္ခုေလာက္ဆြဲလိုက္ပါ ။
အဲဒီမွာ 'name','age','phone' ဆိုၿပီး label သံုးခုနဲ႕ go ဆိုတဲ့ button တစ္ခုထည့္ပါမယ္။
<html>
<head>
<script type ="text/javascript">
...............
</script>
</head>
<body>

Name : <div id="name"></div> <br/>
Age : <div id="age"></div> <br/>
Phone: <div id="phone"></div> <br/>
<input type="button" value="Go" onclick = "show()" />
</body>
</html>
ခုေန browser မွာ run ၾကည့္ရင္ဘာမွေဖာ္ျပဦးမွာမဟုတ္ပါဘူး။ အခု formမွာ
go button ကုိႏွိပ္ရင္ show() method ကုိသြားအလုပ္လုပ္ခိုင္းထားပါ တယ္။
အဲဒီေနရာမွာ name ,age ,phone အတြက္ JSON နဲ႕data ေလးေတြထည့္ေပးၾကည့္ရေအာင္။
ေအာက္မွာေရးျပထားတာေလးၾကည့္ၾကည့္ပါ။
<html>
<head>
<script type ="text/javascript">
function show(){
var jobject= {
"name": "Jhon",
"age": "33",
"phone": "09-33046955",
};
document.getElementById('name').innerHTML=jobject.name;
document.getElementById('age').innerHTML=jobject.age;
document.getElementById('phone').innerHTML=jobject.phone;
}
</script>
</head>
<body>

Name : <div id="name"></div> <br/>
Age : <div id="age"></div> <br/>
Phone: <div id="phone"></div> <br/>
<input type="button" value="Go" onclick = "show()" />
</body>
</html>

အရင္ဆံုး variables မွာ name ,age ,phone အတြက္ data ေတြေၾကျငာလိုက္မယ္။ၿပီးရင္
div tag ထဲက id ေပးထားတဲ့ name ,age ,phone နဲ႕ JSON var ထဲက name ,age ,phone ကုိ
ခ်ိတ္ဆက္ေပးရမယ္။ အဲလိုခ်ိတ္ေပးႏိုင္ဖို႕ document.getElementById( ) ကုိသံုးလို႕ရပါတယ္။
အေပၚက ဥပမာေလးကုိ json.html extension နဲ႕သိမ္းၿပီး Browser မွာ Run ၾကည့္ပါ ။
go button ေလးကုိႏွိပ္တဲ့အခါ သက္ဆိုင္ရာ data ကုိ ခ်က္ခ်င္း Output ျပေပးတာေတြ႕ရပါလိမ့္မယ္။

ေအာက္မွာေနာက္ထပ္ေဖာ္ျပထားေပးတာေလးကေတာ့ Online card ဥပမာေလးပါ..။
{
"orderID": 12345,
"shopperName": "John Smith",
"shopperEmail": "johnsmith@example.com",
"contents": [
{
"productID": 34,
"productName": "SuperWidget",
"quantity": 1
},
{
"productID": 56,
"productName": "WonderWidget",
"quantity": 3
}
],
"orderCompleted": true
}
အဲဒီမွာသတိထားၾကည့္ရမွာက
"contents": [
{
CODE:VALUE;
},
{
CODE:VALUE;
}
],
ဒါေလးကုိၾကည့္ျခင္းအားျဖင့္ object (name:value) ရဲ့ တန္ဖိုးေနရာမွာ array
တစ္ခုအျဖစ္ေရးလို႕ရသလို အဲဒီ array ထဲမွာလဲ object ေတြ ထည့္သြင္းေရးသားလို႕ရတယ္ဆိုတာ ကုိ
သိႏိုင္ပါတယ္။
အခု အထိ ေဖာ္ျပထားတာေတြက Clinent သပ္သပ္ ေရးထားတာပါ ။ ဒါကုိပဲ PHP ထဲမွာ ဆိုဘယ္လို ဖန္
တီးၿပီးဘယ္လို ဖတ္လို႕ရႏိုင္မလဲ ?တကယ္တမ္း PHP က Lauguage သပ္သပ္ Javascript က
Language သပ္သပ္ပါ ။ ဒါေၾကာင့္မို႕ Javascript ကုိ PHP ကတိုက္ရိုက္မသိသလို PHP ကုိလည္း
Javascript ကတိုက္ရိုက္မသိပါဘူး ။ အဲဒါကုိ သိဖို႕ ၾကားခံ method သံုးၿပီး encode လုပ္ရပါတယ္ ။
JSON အတြက္ ကေတာ့ PHP မွာ json_encode() ဆိုတဲ့ functionေလး ရွိပါတယ္ ။
ဒီ function ေလးထဲထည့္ေပးလိုက္တာနဲ႕ Json string အျဖစ္ return ျပန္ေပးပါတယ္ ။
အေပၚက ဥပမာကုိ ပဲ PHP နဲ႕ျပန္ေရးၾကည့္ၾကည့္ရေအာင္
<?php
$cart = array(
"orderID" => 12345,
"shopperName" => "John Smith",
"shopperEmail" => "johnsmith@example.com",
"contents" => array(
array(
"productID" => 34,
"productName" => "SuperWidget",
"quantity" => 1
),
array(
"productID" => 56,
"productName" => "WonderWidget",
"quantity" => 3
)
),
"orderCompleted" => true
);

echo json_encode( $cart );
?>
ဒါေလးကုိ php_json.php လို႕နာမည္ေပးၿပီး ။ wamp (or) xampp server တစ္ခုခုကေန Run
ၾကည့္ၾကည့္မယ္ဆိုရင္ -
{"orderID":12345,"shopperName":"John Smith","shopperEmail":"johnsmith@example.com",
"contents":[{"productID":34,"productName":"SuperWidget","quantity":1},{"productID":56,
"productName":"WonderWidget","quantity":3}],"orderCompleted":true}
ဆိုၿပီး တစ္တန္းတည္း Output ေဖာ္ျပေပးသြားမွာျဖစ္ပါတယ္ ။

ဒီေလာက္ဆိုရင္ JSON နဲ႕ပတ္သတ္လို႕ အေျခခံေလးကုိ တီးမိေခါက္မိရွိသြားၿပီလို႕ ေမွ်ာ္လင့္ပါတယ္
Read more ...

PHP Mailling

May 11, 2014

အြန္လိုင္းမွာ အခမဲ့ရတဲ့ Hosting ၀န္ေဆာင္မွဳေလးေတြရွိပါတယ္။အဲဒီ Hosting site ေလးေတြမွာ Register လုပ္ထားၿပီး Hosting
နဲ႕နဲနဲျဖစ္ျဖစ္ရင္းႏွီးေနေအာင္ ေလ့လာသင့္ပါတယ္။Wamp OR XAMPP စတဲ့Localhost မွာ Cpanel မရဘူးေလ။ေနာက္ထပ္PC မွာ
Windows အသံဳးမ်ားေပမယ့္ Real PHP servers ေတြကေတာ့ Linux ေတြျဖစ္တာေၾကာင့္ဒီလိုေလ့လာျခင္းဟာ Linux ကုိလည္း
တီးမိေခါက္မိရွိသြားေစပါတယ္။ေနာက္ၿပီး Localhost ေတြမွာမ်ားေသာအားျဖင့္ Mail function ကုိပိတ္ထားတတ္ပါတယ္။
ဒီေတာ့ အခုသင္ခန္းစာကုိ Hosting တစ္ခုခုကေနစမ္းမယ္ဆို အေကာင္းဆံုးျဖစ္ပါလိမ့္မယ္ဆိုတာ ၾကိဳေျပာျပထားခ်င္ပါတယ္။
PHP Mailling စမ္းၾကည့္ဖို႕အတြက္ Coding ေတြအမ်ားႀကီးမလိုပါဘူး။
PHP မွာ mail() ဆိုတဲ့ function ေလးတစ္ခုရွိပါတယ္ ။အဲဒီ function ေလးသံုးၿပီး Mailling ကုိအလြယ္တကူလုပ္လို႕ရပါတယ္။
အဲ့ဒီ function က Server ရဲ႕ SMTP service ကေန Mail ကုိလွမ္းပို႕ေပးမွာျဖစ္ပါတယ္။
သူ႔မွာ Parameter ၄ ခုထည့္ေပးရပါတယ္ ။mail($to,$subject,$message,$headers); တို႕ပါ။နားလည္လြယ္ေအာင္ေျပာရရင္
mail(ပုိ႕မယ့္သူ ,အေၾကာင္းအရာ ,စာကုိယ္ ,သတ္မွတ္ခ်က္မ်ား) လို႕ျဖစ္ပါတယ္။
အိုေခ.......အခု Website ေတြမွာ Connect အေနနဲ႕ပါေလ့ရွိတဲ့ Message Box ေလး တစ္ခုလက္ေတြ႕စမ္းၾကည့္ရေအာင္ ။
HTML နဲ႕ Page တစ္ခုအရင္ဆြဲမယ္ Page ထဲမွာ Mail Form တစ္ခု ပါရမယ္ ။

<form action="processForm.php" method="post">


<h2>Send me Your Suggestion...</h2>


<ul>


<li>

<label for="senderName">Your Name</label>

<input type="text" name="senderName" id="senderName" placeholder="Please type your name" required="required" maxlength="40" />

</li>


<li>
<label for="senderEmail">Your Email Address</label>
<input type="email" name="senderEmail" id="senderEmail" placeholder="Please type your email address" required="required" maxlength="50" />

</li>


<li>
<label for="message" style="padding-top: .5em;">Your Message</label>

<textarea name="message" id="message" placeholder="Please type your message" required="required" cols="80" rows="10" maxlength="10000"></textarea>

</li>


</ul>


<div>

<input type="submit" id="sendMessage" name="sendMessage" value="Send Email" />

</div>

</form>
ဒီဇိုင္းလုပ္ခ်င္ရင္ CSS နဲ႕ အလွဆင္လိုက္ေပါ့ ။မေျပာေတာ့ဘူးေနာ္ ။
submit ကုိႏွိပ္တာနဲ႕ processForm.php ကုိေရာက္သြားမွာပါ။ အဲ့ဒီမွာမွ PHP Code ကုိေရးမွာပါ။Post Method သံုးတာဆိုေတာ့
$_POST[] နဲ႕ျပန္ဖမ္းရပါမယ္။ ကဲ စလိုက္ရေအာင္.....
<?php
$sender_name = $_POST['senderName'];
$sender_email = $_POST['senderEmail'];
$sender_message=$_POST['message'];
if($sender_name && $sender_email && $sender_message){
$message = "Name: $sender_name \n";
$message .= "Email: $sender_email\n";
$message .= "Message: $sender_message\n";
//
// HTML Form ထဲက textbox ေတြအားလံုးမွာ Data ေတြရွိေနမယ္ဆိုရင္
//$message ထဲကုိ Name ထဲကစာရယ္ Email ထဲကလိပ္စာရယ္ နဂိုမူလ Message Box ထဲကစာရယ္ ထည့္ၿပီး
//Redirect ေရာက္သြားေစမယ့္ ေမးလ္လိပ္စာ ေခါင္းစဥ္ တို႔နဲ႕အတူ mail() function နဲ႕လွမ္းပို႕လိုက္တာပါ
$recipient = "QplusTraining@gmail.com";
$subject = "Friendship mail";
$headers = "From: Somebody@example.com";
$success = mail( $recipient, $subject, $message, $headers );
echo $success ? "success" : "error";
}
?>
QplusTraining@gmail.com ကုိဖြင့္ၾကည့္ရင္ ကုိယ့္ရလဒ္ကဒီလိုပံုစံမ်ိဳးေလးျဖစ္ပါလိမ့္မယ္

Name: AungAung
Email: amcupid2@gmail.com
Message: This is testing of PHP Mailling method.

ွSecurity အတြက္ဆိုရင္ေတာ့ Validation ေတြအျပင္ CHEPTCHA ေလးပါထည့္ထားေပးဖို႕လိုပါလိမ့္ဦးမယ္။
But ေလာေလာဆယ္ Simple Form နဲ႕ Mail Function ေလးကုိပဲလက္ေတြ႕စမ္းၾကည့္လိုက္ပါဦး။
Read more ...

Create Zip file using PHP

May 11, 2014

php သံုးၿပီး Zip ဖိုင္တစ္ခုဖန္တီးၾကည့္ရေအာင္ ။
အရမ္းမခက္ပါဘူး PHP မွာ Zip file ဖန္တီးႏိုင္ဖို႕အတြက္ ZipArchive ဆိုတဲ့ Class က Built in ရွိၿပီးသားပါ။
အဲ့ဒီ Class ကုိဘယ္လိုသံုးရမလဲဆိုတာေလးသိတာနဲ႕ server ေပၚက ဖိုဒါေတြကုိ Zip ခ်ံဳ႕ၿပီး download link
ဖန္တီးေပးႏိုင္ပါတယ္။နမူနာေလး စမ္းၾကည့္ရေအာင္။ျမန္ေအာင္တစ္ခုၿပီးတစ္ခါရွင္းျပသြားပါမယ္။
<?php
$zip=new ZipArchive();//ZipArchive ကုိ $zip အေနနဲ႕ Object ေဆာက္လုိက္ပါတယ္
$zip->open('example.zip',ZipArchive::CREATE);//Open method ေခၚသံုးပါတယ္။ZipArchive::CREATE ကဒုတိယ Parameter မွာေရးထံုးအရထည့္ကုိထည့္ေပးရမွာပါ။
//example.zip အျဖစ္ေျပာင္းၿပီးZip ပါမယ္ေျပာင္းမယ့္ဖိုဒါကေတာ့Server မွာရွိေနၿပီးသား image နာမည္နဲ႕ဖိုဒါျဖစ္ပါတယ္။
//အဲဒီဖိုဒါကုိ Scandir နဲ႕စစ္လိုက္ေတာ့ Array return ျပန္ရပါတယ္။အဲ့ဒီ array က အခန္း[1],[2]က directory ျဖစ္လို႕ျဖဳတ္ပစ္ဖို႕လိုပါတယ္။
//သိခ်င္ရင္ $files ကုိ print_r() ထုတ္ၾကည့္လုိက္ပါ။
$files=scandir('image');
unset($files[0],$files[1]);
//unset() နဲ႕ directory ကုိျဖဳတ္ေပးလိုက္ပါၿပီ။
//ဖိုဒါတစ္ခုမွာဖိုင္ေတြအမ်ားႀကီးရွိေနမွာမို႕လို႕ဖိုင္တစ္ခုစီကုိ Looping သံုးၿပီး zip လုပ္လိုက္ပါတယ္။

foreach($files as $file){
$zip->addFile("image/$file","files/$file");//addFile()မွာ socure နဲ႕ Desination ကုိထည့္ေပးရပါတယ္။
//echo $file;
}
//အားလံုးၿပီးရင္ျပန္ပိတ္ေပးရပါမယ္
$zip->close();
ၿပီးတာနဲ႕တန္းၿပီး Download ခ်ႏိုင္ဖို႕အတြက္ ဆိုရင္ေတာ့ အခုလိုHeader("location: ??")ေလးသံုးလုိက္လို႕ရပါတယ္
header("location:example.zip");
?>
ကဲ .... စမ္းၾကည့္လိုက္ပါဦး ။
Read more ...

Crate progress bar

May 11, 2014

progress bar ေလးတစ္ခုေလာက္ Javascript နဲ႕ ဖန္တီးၾကည့္ရေအာင္ ။
HTML နဲ႕ CSS ေလးေတြအရင္ဖန္တီးလိုက္မယ္။

<!DOCTYPE HTML>
<html lang="en-US">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <div id="wrap">
        <div id="progress_bar_wrap">
       
        </div>
        <div id="buttons">
            <input type="button" id="set_25" value="25%" />
            <input type="button" id="set_50" value="50%" />
            <input type="button" id="set_75" value="75%" />
            <input type="button" id="from_0_to_100" value="0% - 100%" />
        </div>
    </div>
</body>
</html>
progress_bar_wrap ကုိ CSS နဲ႕ က်မွ Width နဲ႕ Height ထည့္ေပးမယ္ ။ သပ္သပ္ရပ္ရပ္ျဖစ္ေအာင္
wrap ID ထပ္အုပ္ထားလိုက္တယ္ ။ အဲ့ဒါေတြက ကၽြမ္းၿပီးသားဆိုကုိယ့္ဖာသာကုိအဆင္ေျပသလိုလုပ္
လိုက္လို႕ရတယ္ ။ေသခ်ာမရွင္းျပေတာ့ဘူး။
ေလာေလာဆယ္ သံဳးထားတဲ့ CSS ကဒီမွာ ။
*{
padding:0;
margin:0;
}
body{
font-family:Tahoma;
}
#wrap{
margin:100px;
}
#buttons{
margin-top:10px;
}
#progress_bar_wrap{
width:300px;
height:30px;
border:1px solid #222;
}
CSS ကုိအဆင္ေျပသလိုသံုးလိုက္လို႕ရတယ္ အဓိကေျပာခ်င္တာက Progress bar ကုိအသက္သြင္းမယ့္ Javascript ...
ႏွစ္သက္ရာနာမည္နဲ႕ folder တစ္ခု ေဆာက္လိုက္။ အဲဒီထဲမွာ
main.js နဲ႕ progress_bar_lib.js ဆိုၿပီး js ႏွစ္ဖိုင္ေဆာက္လိုက္ပါ ။ တစ္ဖိုင္က function ကိုေရးထားၿပီးေနာက္တစ္ဖိုင္
ကေနလွမ္းေခၚသံုးမွာျဖစ္ပါတယ္ ။အဲဒီႏွစ္ဖိုင္ကုိ HTML ဖိုင္ထဲ add ေပးလိုက္ပါဦး
HTML CSS မွာ Progress bar ပံုကအဆင္သင့္ရၿပီ အဲဒီက Button ေတြကိုႏွိပ္ရင္ Progress က ရာခိုင္ႏွဳန္းနဲ႕အတူ တတ္လာ
ရမယ္။အဲဒီ Button ေတြမွာ onclick() function ထည့္ၿပီး Click လုပ္တိုင္းသက္ဆိုင္ရာ Javascript ကုိ လွမ္းခိုင္းမယ္။
အခု progress_bar_lib.js ကုိဖြင့္
function progress_bar(container){
} main.js  ကေနေခၚသံုးဖို႕ progress_bar ဖန္ရွင္ဖန္တီးမယ္ ။Parameter တစ္ခုထည့္ထားလိုက္။ဒီဥပမာအတြက္ေတာ့
container နာမည္နဲ႕ Parameter တစ္ခုထည့္ထားလိုက္တယ္
တစ္ခါတည္းရွင္းသြားမယ္ေနာ္။ အဲဒီဖန္ရွင္ထဲမွာေအာက္ကအတိုင္းေရး ..
var bar=document.createElement('div'); //div tag တစ္ခုကုိ js နဲဖန္တီးၿပီး variable တစ္ခုအေနနဲ႕ထားထားတယ္
var text=document.createElement('div');
bar.style.width='0px'; //ဒါကစ ေနာက္သံုးေၾကာင္းက Button ကုိႏွိပ္လိုက္ရင္ color bar တစ္ခုက % အေနနဲ႕ေဖာ္ျပဖို႕
bar.style.height='100%';
bar.style.background='#eef';

container.appendChild(bar);// color bar နဲ႕ အတူ text တစ္ေၾကာင္းထည့္မယ္ 50%ဆို 50% ျပမယ္။ေအာက္ကကုတ္ကေနရာခ်တာ။

text.style.marginTop='-26px';
text.style.textAlign='center';
text.style.color='#111';
text.style.size='15px';

text.appendChild(document.createTextNode('0%'));
container.appendChild(text);

ဒီအထိရရင္ Main.js ကုိသြား ။ Page load ျဖစ္ၿပီးရင္ အဆင္သင့္ျဖစ္ဖို႕ window.onload အေျခအေနမွာ ဖန္ရွင္တစ္ခုေရးမယ္။
window.onload=function(){
var bar=new progress_bar(document.getElementById('progress_bar_wrap'));// progress_bar_wrap ထဲမွာေဖာ္ျပခ်င္တာကုိထည့္မယ္ေလ။

    document.getElementById('set_25').onclick  =function(){
         bar.setpercentage(25); 
    }
    document.getElementById('set_50').onclick  =function(){
        bar.setpercentage(50);
    }
    document.getElementById('set_75').onclick  =function(){
        bar.setpercentage(75);
    }
    }
    ဒီမွာေခၚသံုးထားတဲ့ setpercentage က Js libiary ထဲကမဟုတ္ဘူးဒီထဲမွာလည္းမရွိဘူး ။
    ဒီေတာ့ ဒါေလးကုိ ဟိုဘက္progress_bar_lib.js မွာထပ္ ျဖည့္လိုက္ရေအာင္။
    function progress_bar(container)ရဲ႕ အပိတ္ } မေရာက္ခင္မွာ ဖန္ရွင္အသစ္ထပ္ေရးမယ္
   
    this.setpercentage=function(percentage){//this ကလက္ရွိactive ျဖစ္ေနတဲ့ action ကုိညြန္းပါတယ္။
    bar.style.width=percentage+'%'; //color အတြက္
    text.removeChild(text.firstChild); // text ေဖာ္ျပဖို႕အတြက္ မူလရွိၿပီးသားကုိဖ်က္လိုက္တာ
    text.appendChild(document.createTextNode(percentage+'%'));// ဖ်က္ၿပီးမွလက္ရွိ % စာသားကုိျပန္ျပတာ။
}
removeChild နဲ႕ appendChild ၿပီးေတာ့ createTextNode စတာေတြနဲ႕ရင္းႏွီးေအာင္ဒီပံုစံသံုးလိုက္တာပါ။ဒီထက္လြယ္
ေအာင္ေရးလည္းရပါတယ္။အခုဆို ရင္ 25%,50%, နဲ႕ 75% Buttonသံုးခုအလုပ္လုပ္ပါၿပီ။
from_0_to_100 button မွာေတာ့ ႏွိပ္လိုက္ရင္ 0 ကေန 100 ကုိ ေျပးတတ္လာေစခ်င္တာ ။ ဒီေတာ့အဲ့ဒီအတြက္ သပ္သပ္
ထပ္ျဖည့္ေရးရေအာင္ ။
main.js ဘက္က ေစာေစာက button သံုးခုအတြက္ေရးထားတဲ့ေအာက္မွာပဲထပ္ထည့္လိုက္မယ္ ဒီလိုေလးေရးလိုက္
    document.getElementById('from_0_to_100').onclick  =function(){
        var i=0;
        var interval=window.setInterval(function(){   
        if(i>=100 ){
            window.clearInterval(interval);
        }
            bar.setpercentage(i);
            i++;
        },50);   
    }
i>=100 ထည့္ေပးရတာက 100 ျပည့္တာနဲ႕ရပ္သြားရေအာင္ပါ ။   
setInterval(?? , 50) ရဲ႕ ဒုတိယ Parameter မွာ အခ်ိန္ကုိ မီလီစကၠန္႕နဲ႕ထည့္ေပးရပါတယ္။
50 မီလီစကၠန္႕တိုင္း တစ္တိုးသြားေအာင္လို႕ ပထမ Parameter မွာ nameless function
တစ္ခုျဖည့္ေပးလိုက္တာပါ။ function(){??} အေနနဲ႕ေရးတာေတြဟာ Nameless function ေတြပါ။
အိုေခ ... ဒါဆို id မွာ from_0_to_100 button ေပးထားတဲ့ Button အတြက္လည္းျပည့္စံုသြားပါၿပီ။
ႏွစ္ေခါက္ေလာက္ထပ္ဖတ္ၾကည့္ရင္ ရွင္းလင္းသြားမွာပါ ။စမ္းၾကည့္ပါဦး

Read more ...

PHP Date & Times

Mar 4, 2014
PHP မွာ အခ်ိန္ကုိ ေဖာ္ျပဖို႔အတြက္ time() function ေလးနဲ႕လြယ္လြယ္ေလးေဖာ္ျပလို႔ရပါတယ္ ။
ဒါေပမယ့္ PHP ရဲ႕ time function ဟာ unix စနစ္ကေနဆင့္ပြားရယူထားတာျဖစ္ပါတယ္။ ဒီေတာ့ Unix ရဲ႕
timestamp စနစ္ကုိအရင္ေလ့လာၾကည့္ရေအာင္ သူက အခ်ိန္ကုိ စကၠန္႔နဲ႕တြက္ပါတယ္။
zero က January 1,1970 ျဖစ္ပါတယ္။ထူးျခားတာကသူက အသံုးျပဳထားတဲ့ Machine ရဲ႕ Systemအေပၚမူတည္ၿပီး
ေတာ့လည္းအေျပာင္းအလဲရွိပါတယ္။ 32 bit System မွာဆို December 1902 to January 2037 အထိတြက္ယူ
ႏိုင္ၿပီး 64 bit system မွာေတာ့ Billion of years ေတြကုိကုိင္တြယ္ေဆာင္ရြက္ႏိုင္မွာျဖစ္ပါတယ္။ဒါေပမယ့္
ဒါက Unix ရဲ႕ သမိုင္းေၾကာင္းျဖစ္ၿပီး PHP မွာေတာ့ January 1,1970 ကုိပဲ zero အျဖစ္သတ္မွတ္ထားပါတယ္။

အိုေခ စရေအာင္ ။ editor ကုိဖြင့္ ဒါေလးရိုက္ထည့္
<?php
 echo time() ;// Output>1392728794
?>
server ထဲသြားသိမ္း Browser ကေနေခၚလိုက္ ။သန္းေထာင္နဲ႕ခ်ီတဲ့နံပါတ္ေတြကုိေတြ႕ရပါလိမ့္မယ္။ အဲ့ဒါက
system က zero စကၠန္႔အျဖစ္စသတ္မွတ္တဲ့01/01/1970ကေန အခုထိ အခ်ိန္ကုိ စကၠန္႔နဲ႕ျပေနတာပါ။ refresh
လုပ္ၾကည့္ရင္ စကၠန္႔ ေျပာင္းလဲတိုင္း ေနာက္ဆံုး နံပါတ္ေျပာင္းေျပာင္းသြားတာေတြ႕ရပါလိမ့္မယ္။01/01/1970
အခ်ိန္ကုိ zero အျဖစ္သတ္မွတ္တာေၾကာင့္မို႔အဲဒီထက္ေစာတဲ့ အခ်ိန္ကိုေတာ့ ဒီ function က ကုိင္တြယ္ေျဖရွင္းႏိုင္စြမ္း
မရွိပါဘူး။
ေနာက္ထပ္ စိတ္၀င္စားဖို႔ေကာင္းတာတစ္ခုက make time ဖန္ရွင္ mktime(နာရီ,မိနစ္,စကၠန္႔,လ,ရက္,ႏွစ္)ပါ။
သူကေတာ့timestampကေန ကုိယ္ေရာက္ေစခ်င္တဲ့အခ်ိန္ထိကုိသတ္မွတ္ႏိုင္ပါတယ္ ။  Parameter ကုိျပထားတဲ့အတိုင္း
ေနရာမလြဲေစပဲအစီအစဥ္တက်ထားေပးရပါတယ္။
echo mktime(2,30,45,1,1,2014)."<br/>";// output> 1388543445
Outputမွာ နံပါတ္ေတြကုိေတြ႕ရပါလိမ့္ဦးမယ္ ။သူကေတာ့ refresh လုပ္လည္းမေျပာင္းလဲပါဘူး။လက္ရွိအခ်ိန္ကုိေဖာ္ျပေနတာ
မဟုတ္တဲ့အတြက္ပါ။အခ်ိန္အေပၚမွာတြက္ခ်က္မွဳေတြလုပ္မယ္ဆိုရင္ ဒီ function ေတြနဲ႕တြက္ရတာမို႔ မွတ္ထားရမယ့္
function ေတြျဖစ္ပါတယ္။ေအာက္ကဥပမာေလးကုိေလ့လာၾကည့္ပါ။
<?php
$now= time();
$birthday=strtotime('1990-1-1');
$age=$now - $birthday;
$age_year=floor($age/(60*60*24*30*12));//ခုႏွစ္ကုိပဲယူခ်င္လို႔
echo $age_year;
?>
ပံုမွန္ေဖာ္ျပတဲ့ အခ်ိန္ကုိ timestramp အျဖစ္ေျပာင္း ခ်င္ရင္ strtotime() function ကုိသံုးရပါတယ္။
အသံုးမ်ားလို႔မမွတ္ထားခ်င္လည္းမွတ္ထားရမယ့္ function တစ္ခုျဖစ္ပါတယ္။
floor() function က ဒသမကိန္းေတြျဖစ္ေနရင္ ကိန္းျပည့္ယူဖို႔ေဆာင္ရြက္ေပးပါတယ္။
တြက္ခ်က္မွဳအတြက္ မို႔ စကၠန္႔ ေတြနဲ႕အလုပ္လုပ္သြားတာျဖစ္ေပမယ့္ တကယ္တမ္း
ကၽြန္ေတာ္တို႔ေတြ႕ေနျမင္ေနက် ရက္လႏွစ္နာရီမိနစ္စကၠန္႔ ပံုစံမ်ိဳးလိုခ်င္ရင္ေတာ့ date() function ကဖန္တီးေပး
ႏိုင္ပါတယ္။ေအာက္ကကုတ္ကုိေလ့လာၾကည့္ပါ
 echo date("d/m/Y")."<br/>" ;// output>18/02/2014
 echo date("h:i:s")."<br/>" ;// output>01:43:02
ျပထားတဲ့အတိုင္း အခ်ိန္အတြက္ day 'd',month 'm',year 'y',hour 'h',minute 'i',second 's' စသည္ျဖင့္ Parameter
ထည့္ေပးရပါတယ္ ။ ဒီေနရာမွာ D M Y စတဲ့ အကၡရာအႀကီးကုိသံုးရင္ 'Sun,Mon' 'January,February' စသည္ျဖင့္
အရွည္ေကာက္ျပေပး မွာျဖစ္ပါတယ္။
ရက္-လ-ႏွစ္ , လ/ရက္/ႏွစ္ အဆင္ေျပသလိုေနရာခ်သတ္မွတ္ေပးလို႔ရပါတယ္။ ေတာ္ေတာ္ေလးေတာ့သေဘာေပါက္သြားၿပီထင္တယ္။
ကဲ .... ေနာက္ေဆြးေႏြးခ်က္မွကၽြန္ေတာ္တို႔ ထပ္ေတြ႕ရေအာင္ ။ ေက်းဇူး ။






Read more ...

NiceFunctions

Mar 4, 2014
PHP Programmer တစ္ေယာက္ျဖစ္လာဖို႕ အတြက္ အေရးႀကီးဆံုးက
တစ္ခါတည္းတန္းသံုးႏိုင္တဲ့ PHP ရဲ႕ Builtin Function ေတြကုိသိေနဖို႕
အေရးၾကီးပါတယ္ ။ တကယ္တမ္း ေရးၿပီဆိုရင္ အဲဒီ Function ေတြ
ယူသံုးလိုက္တာနဲ႕ အလုပ္က လြယ္လြယ္ေလးၿပီးသြားပါတယ္ ။
အသံုး၀င္တဲ့ function တစ္ခ်ိဳ႕နဲ႕အလုပ္လုပ္ပံု ကုိေအာက္မွာေဖာ္ျပေပးထားပါတယ္။
--------------------------------------------------------------------------------

#strlen()
စာေၾကာင္းထဲက စာလံုးေတြကုိေရတြက္ေပးႏိုင္ပါတယ္။တစ္ခုသတိထားရမွာက spacebar
ကုိလည္းစာလံုးတစ္လံုးအေနနဲ႕ေရေပးတာျဖစ္ပါတယ္။
ဥပမာ - strlen("Hello! Mg Mg.")//Output> 13
# trim()
စာသားရဲ႕ ေရွ႕ေရာေနာက္က Spacebar ေတြကုိျဖတ္ထုတ္ေပးတဲ့ function ျဖစ္ပါတယ္ ။
ဥပမာ - trim("  arrbwarrr      ") //Output>arrbwarrr
# htmlentities()
သူကရွင္းပါတယ္ ။html ေတြကုိ အလုပ္မလုပ္ေအာင္တားဆီးတဲ့ function ျဖစ္ပါတယ္။
# redirect_to(Link)
ဒီ function ကေတာ့လင့္ကုိ ႏွိပ္ရင္ေနာက္တစ္ခုဆီ redirect လုပ္ေပးပါတယ္။ကြင္းထဲက Link ေနရာမွာ
တစ္ဆင့္သြားလိုတဲ့ ၀ဘ္ဆိုက္လင့္ကုိေရးရပါမယ္။
# header("Location:Link")
ဒီ function ကေတာ့ Action လုပ္တဲ့အခါတစ္ခါတည္းစာမ်က္ႏွာခ်ိန္းသြားေပးပါတယ္ ။ဥပမာ Logout လုပ္တာနဲ႕
အစစာမ်က္ႏွာျပန္ေရာက္သြားတာမ်ိဳးေပါ့ ။
# isset() နဲ႕ defined()
ကြန္နက္ရွင္စစ္ရင္သံုးတတ္ပါတယ္ ရွိမရွိဟုတ္မဟုတ္စစ္တာမ်ိဳးပါ
# require_once()နဲ႕require(db.php)
တစ္ခုခုကုိခ်ိတ္ဆက္ေပးတာမ်ိဳးဥပမာ Database နဲ႕လွမ္းခ်ိတ္လိုက္တာ/
require_once ကေတာ့connection ခ်ိတ္ထားမထားစစ္လိုက္တယ္မခ်ိတ္ထားရင္လိုအပ္ခ်ိန္တစ္ခ်က္လွမ္းခ်ိတ္တာ ။
require ကေတာ့သက္ဆိုင္ရာေဒတာေတြအလုပ္လုပ္ေနသေရြ႕ခ်ိတ္ထားမွာ။
# define()
မရွိေသးရင္သတ္မွတ္ဖို႕သံုးပါတယ္ ။define($abc="User")//$abc="User"မရွိေသးရင္သတ္မွတ္လိုက္ပါ။
# str_replace(#,#,#)
Parameter သံုးခုပါပါတယ္။ဒီေကာင္ေနရာမွာ ဒီိေကာင္အစားသြင္းဆိုတာမ်ိဳးမွာသံုးပါတယ္ ။
ေနာက္ဆံုးတစ္ခုက ဖိုင္သို႕မဟုတ္ Varable ထည့္ေပးရမွာပါ
str_replace('0'," ",$file) ဒါဆို $file variable ထဲက 0 ေနရာေတြတိုင္းမွာ ေနရာလြတ္အျဖစ္ျပန္ထားေပးပါလိမ့္မယ္ ။
#explode(#,#)
parameter ႏွစ္ခုပါပါတယ္ ။ေဒတာတစ္ခုခုကုိ array အျဖစ္ေျပာင္းခ်င္သံုးလို႕ရပါတယ္ ။
$date=10-10-2014 ကုို array ေျပာင္းခ်င္ရင္ explode("-",$date) လို႔ေပးလိုက္
output> array("10","10","2014")လို႔ရပါလိမ့္မယ္။
#implode(#,#)
ေစာေစာက explode ရဲ႕ ဆန္႔က်င္ဘက္လုပ္ေပးပါတယ္ ။
#exit() ,# die()
လက္ရွိ run ေနတဲ့လုပ္ငန္းကို ရပ္လိုက္ခ်င္ရင္သံုးပါတယ္။
#file_exists("link")
ထည့္ထားတဲ့ လင့္မွာ ဖိုင္ရွိ မရွိ စစ္ေပးႏိုင္ပါတယ္ true/false တစ္ခုခု return ျပန္ေပးပါတယ္။
#file_get_contents("something.txt")
something.txt လို data ဖုိင္တစ္ခုခုထဲက data ေတြကုိ string အျဖစ္လွမ္းယူဖို႔သံုးပါတယ္။
#file_put_contents(#,#)
parameter ႏွစ္ခုပါပါတယ္ ဖိုင္ကတစ္ခု ထည့္မယ့္စာသားကတစ္ခု ဥပမာ -
file_put_contents("something.txt","You are ugly.");လို႔ေရးလိုက္ရင္ something.txt နာမည္နဲ႕
ဖိုင္ေဆာက္ၿပီး You are ugly. စာသားထည့္ေပးလိုက္ပါလိမ့္မယ္။ေစာေစာက file_get_contents ရဲ႕
ဆန္႔က်င္ဘက္လုပ္ေပးပါတယ္။
#in_array(#,#)
parameter ႏွစ္ခုပါပါတယ္ array variable ကတစ္ခု ထည့္စစ္မယ့္စာသားကတစ္ခု
array ထဲက data ေတြထဲမွာ ဒီေကာင္ပါလားလို႔လွမ္းစစ္ဖို႔သံုးပါတယ္ ။true/falseတစ္ခုခု return ျပန္ေပးပါတယ္။
#is_array()
array ဟုတ္မဟုတ္စစ္ေပးတာပါ။true/falseတစ္ခုခု return ျပန္ေပးပါတယ္။
#max();
ေပးလာတဲ့ ကိန္းေတြ အမ်ားအျပားထဲက အႀကီးဆံုး ကုိေရြးေပးပါတယ္။ array ထည့္လည္းရပါတယ္။
#min();
ေစာေစာက max() ရဲ႕ ဆန္႔က်င္ဘက္လုပ္ေပးပါတယ္ ။
#print_r("array")
array ထဲက တန္ဖိုးေတြကုိ ရိုက္ထုတ္ေပးႏိုင္ပါတယ္။
#rand(#,#)
randon number ကုိထုတ္ေပးႏိုင္ပါတယ္ ။အနိမ့္ဆံုးတန္ဖိုးနဲ႕ အျမင့္ဆံုးတန္ဖိုးသတ္မွတ္ေပးဖို႔ parameter ႏွစ္ခု
ထည့္ေပးဖို႔လိုပါတယ္။
#sleep()
script ကုိ ခဏရပ္ေနဖို႔သံုးပါတယ္ ။ အခ်ိန္ကုိ second နဲ႕ထည့္ေပးရပါတယ္။
Read more ...

Array Functions

Mar 4, 2014
PHP မွာ built in ပါ၀င္တဲ့ function ေတြ အမ်ားအျပားရွိပါတယ္ ။ အဲဒီ function ေတြထဲမွာတကယ္
အသံုး၀င္လို႔ ယေန႔ထိ မေမာတမ္းသံုးေနရတဲ့ function ေတြလည္း အမ်ားအျပားရွိပါတယ္။
အခု အဲ့ဒီ built in function ေတြထဲက array အေပၚမွာ သံုးသြားတဲ့တကယ္အသံုး၀င္တဲ့
function တစ္ခ်ိဳ႕ ကုိရွင္းျပေပးပါမယ္။

အိုေခ  .. ကၽြန္ေတာ္တို႔ array တစ္ခုကုိ တည္ေဆာက္လိုက္မယ္ ။အဲဒီထဲကုိ sample data တစ္ခ်ိဳ႕ထည့္မယ္။
echo နဲ႕ print က ရိုးရိုး ထုတ္ျပခိုင္းတာ ။return မျပန္ရေသးတဲ့ array ထဲက data ကုိထုတ္ၾကည့္ခ်င္ရင္
print_r() function ကုိသံုးလို႔ရပါတယ္။

<?php
    $numbers=array(1,2,3,4,5,6);
    print_r($numbers);
    echo "<br/><br/>";
?>
output > Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 )
လို႔ျပေပးပါလိမ့္မယ္။ array အခန္းေတြရဲ႕ Index က 0 ကစတာမို႔လို႔ အခန္း[0] ထဲမွာ data no 1
အခန္း[1] ထဲမွာ data no 2 စသည္ျဖင့္ျပေပးတာကုိေတြ႕ရပါလိမ့္မယ္။
array_shift() ကုိသံုးၾကည့္ရေအာင္ ။ ဒီ functions က ပထမဆံုးအခန္းက data ကုိျဖတ္ထုတ္ေပး
ႏိုင္ပါတယ္။ ေစာေစာက code ထဲ ဒါေလးထပ္ေပါင္းထည့္ေပး
    $a= array_shift($numbers);
    echo "a: ". $a . "<br/>";
output > a: 1 လို႔ထုတ္ေပးတာကုိေတြ႕ရပါတယ္။ ဒီအခ်ိန္မွာ က်န္ရစ္ခဲ့တဲ့ array ကုိျပန္ထုတ္ၾကည့္။
Output > Array ( [0] => 2 [1] => 3 [2] => 4 [3] => 5 [4] => 6 )  ျဖစ္သြားပါတယ္။
array_shift ကထိပ္ဆံုးအခန္းက data ကုိ ျပယံုျပတာမဟုတ္ပါဘူးအခန္းကုိပါ ျဖတ္ထုတ္ေပးလိုက္တာပါ။
အဲဒီပထမဆံုးအခန္းေနရာကို data တစ္ခုခုျပန္ထားခ်င္ရင္ array_unshift(var,data) function နဲ႕ျပန္ထည့္လို႕
ရပါတယ္။သူက parameter ႏွစ္ခုေပးရပါတယ္။တစ္ခုက Array ကုိယ္စားျပဳ variable ေနာက္တစ္ခုက ထပ္ထည့္
ခ်င္တဲ့ data ။ကဲ ... ေစာေစာက code ထဲ ဒါေလးထပ္ေပါင္းထည့္ေပးၾကည့္ရေအာင္
    $b= array_unshift($numbers,"first");
    echo "b: ". $b . "<br/>";
    print_r($numbers);
    echo "<br/><br/>";
အိုေခပါတယ္ index ရဲ႕ zero ခန္းမွာ ကၽြန္ေတာ္တို႔ထည့္ေပးလိုက္တဲ့ first ဆိုတဲ့စာသားေလး၀င္သြားပါၿပီ။
b: 6
Array ( [0] => first [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 )
ၿပီးေတာ့  unshift မွာ echo ထုတ္ျပခိုင္းတဲ့အခါ အခန္းအေရအတြက္ကုိထုတ္ျပပါတယ္။ျဖတ္ထုတ္သြားတာမဟုတ္ပါဘူး။
ေနာက္ဆံုးအခန္းက data ကုိထုတ္ျပတာလည္းမဟုတ္ပါဘူး။ ေသခ်ာခ်င္ရင္ $numbers=array(1,2,3,4,5,6);
ေနရာမွာ နံပါတ္မထည့္ပဲ $numbers=array('a','b','c','d','e','f'); လို႔ ထည့္ၾကည့္ပါ ။ ဒါဆိုရွင္းသြားပါလိမ့္မယ္။
ေသေသခ်ာခ်ာမွတ္ထားသင့္တာတစ္ခုက PHP function တစ္ခုဟာ အလုပ္တစ္ခုတည္းလုပ္ေပးႏိုင္တာမဟုတ္ပဲ
လိုအပ္ခ်က္အရ ႏွစ္ခုသံုးခု ကုိလည္း လုပ္သြားေပးႏိုင္တယ္ဆိုတာ မွတ္ထားလိုက္ပါ။
ကဲ .... ေနာက္ေဆြးေႏြးခ်က္မွကၽြန္ေတာ္တို႔ ထပ္ေတြ႕ရေအာင္ ။ ေက်းဇူး ။

Read more ...

VariableVariables

Mar 4, 2014
ယေန႔ေခတ္မွာ အြန္လိုင္းေပၚက Website ေတြ အားလံုးရဲ႕ 80 % က PHP Language ကုိ အသံုးၿပဳၿပီးေရးသားထားၾကတာျဖစ္ပါတယ္ ။
တစ္ျခား ေကာင္းမြန္တဲ့ Language ေတြ အမ်ားႀကီးရွိေနေပမယ့္ ဘာေၾကာင့္ PHP ကုိမွ အထူးတလည္အသံုးျပဳၾကတာလဲ၊?
အေၾကာင္းရင္းကေတာ့ PHP ဟာ OpenSource ျဖစ္တာ အခမဲ့လည္းျဖစ္တာ အသံုးျပဳရာမွာ အျခား Language ေတြထက္လြယ္ကူအဆင္
ေျပတာ စတဲ့အားသာခ်က္ေတြေၾကာင့္ ေနာက္ပိုင္းမွာပိုၿပီးလူသံုးမ်ားရတာျဖစ္ပါတယ္ ။

PHP နဲ႕ Dynamic Web pages ေတြေရးဖို႔ ဘာကုိစၿပီးလုပ္ရမွာလဲ ?
Web Server ေပၚမွာ အလုပ္လုပ္ေစမွာျဖစ္လို႔ ကိုယ့္ရဲ႕ ကြန္ပ်ဴတာေလးကုိ Web Server ေဆာ့၀ဲ တစ္ခုအရင္ Run ေပးဖို႔လိုအပ္ပါတယ္ ။
ဒီေနရာမွာ အသံုးအမ်ားဆံုး Windows OS ကုိပဲ Based ထားၿပီးေဆြးေႏြးသြားမွာျဖစ္လို႔ Other OS သံုးတဲ့သူေတြက တစ္ခ်ိဳ႕အခ်က္ေတြမွာ
ကုိယ့္ဖာသာကုိ ျပဳျပင္မွတ္သားသြားဖို႔ တိုက္တြန္းပါတယ္ ။
ေနာက္ထပ္လိုအပ္တာကေတာ့ Coding ေရးဖို႔ Text Editor တစ္ခု  ျဖစ္ပါတယ္။ PHP အတြက္ သီးသန္႔၀ယ္သံုးလို႔ရတဲ့ Editor ေတြအမ်ား
ႀကီးရွိၿပီးသားမို႔ ပိုမိုအဆင္ေျပစြာအသံုးျပဳလိုရင္ေတာ့ ၀ယ္သံုးေစခ်င္ပါတယ္ ။ ကၽြန္ေတာ္ကေတာ့ အခမဲ့ရတဲ့ Notepad++ ေလးကုိပဲ
ဒီေနရာကေန Download ခ်ထားၿပီး နမူနာအျဖစ္အသံုးျပဳရွင္းျပ သြားပါမယ္ ။
ဒီေနရာကေနၿပီးေတာ့ WAMP web server ေဆာ့၀ဲကုိေဒါင္းလုုတ္ခ်ၿပီး Install သြင္းလိုက္ပါ ။ Next ,Next OK ,OK လုပ္သြားယံုနဲ႕အဆင္ေျပ
ေျပ Install လုပ္ၿပီးသြားမွာပါ ။ အဲဒီ ေဆာ့၀ဲထဲမွာ PHP အျပင္ Apache ,MySQL စတဲ့ Database ေတြပါတစ္ခါတည္းပါ၀င္ၿပီးသားမို႔သံုးရတာ
အရမ္းအဆင္ေျပပါတယ္။အခုဆိုရင္ drive C: ထဲမွာ wamp နာမည္နဲ႕ ဖိုဒါအသစ္တစ္ခုထပ္ေရာက္ေနမွာျဖစ္ၿပီး အဲ့ဒီ ဖိုဒါထဲကမွwww ဆိုတဲ့
ေနာက္ထပ္ဖိုဒါ ထဲမွာ ကၽြန္ေတာ္တို႕ အလုပ္လုပ္ေစခ်င္တဲ့ PHP ဖိုင္ေတြကုိသြားထားေပးရမွာျဖစ္ပါတယ္။
ဒါေလာက္ဆိုရင္ PHP စေရးလို႔ရၿပီလား ?
 စေရးလို႔ရပါၿပီ ။dynamic web ေရးမွာျဖစ္လို႔ HTML /CSS ကုိသိၿပီးသားလို႔သတ္မွတ္ပါမယ္။Web မွာ Language တစ္ခုထဲနဲ႕ အကုန္ဖန္တီးသြား
လို႔မရပါဘူး ။ လူတစ္ေယာက္က တစ္ခုတည္းကုိပဲ စိုက္လိုက္မတ္တပ္လုပ္မွ တကယ္ကၽြမ္းက်င္တယ္ လို႔ ေရွးပညာရွိေတြကဆိုေပမယ့္
ဒီေနရာမွာေတာ့ အဲ့ဒီလိုလုပ္လို႔မျဖစ္ပါဘူး ။Web Developer ေကာင္းတစ္ေယာက္ျဖစ္ဖို႔ အတြက္ PHP တစ္ခုတည္းေဇာက္ခ်လုပ္ေနလို႔မရပါဘူး ။
Design အတြက္ HTML /CSS , လွဳပ္ရွားေနတဲ့ ပံုရိပ္ေတြ အတြက္ Javescript /JQuery , Asynchronous လုပ္ငန္းစဥ္
အတြက္ AJAX စသည္ျဖင့္ သူ႔အပိုင္းနဲ႕သူ သိနားလည္ေနရမွာျဖစ္ပါတယ္။အခုေဆြးေႏြးမယ့္ အေၾကာင္းအရာထဲမွာ ပိုၿပီးျမန္ျမန္ခရီးေရာက္ေစခ်င္တဲ့
အတြက္ ProgrammingConcept အေျခခံေတြထည့္မေျပာေတာ့ပါဘူး။ www ဖိုဒါထဲမွာ QplusWebTraining ဆိုတဲ့ဖိုဒါ အသစ္တစ္ခုထပ္ေဆာက္
လိုက္ရေအာင္ ။ Notepad++ ကုိဖြင့္ၿပီး ဒီလိုေလး ရိုက္ထည့္လိုက္
<?php
phpinfo();
?>
file name  ကုိ my_phpinfo.php လို႔ေပးၿပီး ေစာေစာက ေဆာက္ထားတဲ့ QplusWebTraining ဖိုဒါေအာက္မွာသြားထားလိုက္ပါ ။
ၿပီးရင္ WAMP server ကုိ ကလစ္ႏွိပ္လို႔ အရင္ Run ေပးလုိက္ပါဦး ။ Run ၿပီးသားဆို ညာဘက္ task bar မွာ သူ႔ပံုေလးကုိအစိမ္းေရာင္ေလးနဲ႕
ျပေနပါလိမ့္မယ္ ။ အဲဒါေလးေသခ်ာၿပီဆိုရင္ Browser ကိုဖြင့္ localhost/my_phpinfo.php လို႕ရိုက္ထည့္လိုက္မယ္ဆိုရင္ Server ရဲ႕
information Page ကိုေဖာ္ျပေပးပါလိမ့္မယ္။
တစ္ခ်ိဳ႕စက္ေတြမွာ localhost ကုိ Permission ပိတ္ထားတတ္လို႔  127.0.0.1/my_phpinfo.php ဆိုၿပီးလည္းေခၚသံုးလို႔ရပါတယ္ ။
phpinfo() ဆိုတဲ့ function ေလးက server ရဲ႕ information ေတြကို ၾကည့္ဖို႔အတြက္ သံုးတဲ့ function တစ္ခုျဖစ္ပါတယ္ ။ဒါေပမယ့္ ဒါကုိ စမ္း
သပ္ဖို႔အတြက္ပဲသံုးသင့္ၿပီး လက္ေတြ႔မွာ Hosting လံုျခံဳေရးအရ ဒီလိုဖိုင္မ်ိဳး server မွာလံုး၀ မထားထားသင့္ပါဘူး ။
ေနာက္ထပ္ variable ေၾကျငာသတ္မွတ္ရာမွာ ထူးထူးျခားျခား အသံုးျပဳႏိုင္တဲ့ Variable variables အသံုးျပဳပံုေလး ေျပာျပပါမယ္။
<?php
$a="Hello";            // variable a ထဲ Hello string ကုိထည့္လိုက္တယ္ ။
$Hello="Have a good day .";        // variable a ထဲက string data အတိုင္း ေနာက္ထပ္ variable တစ္ခုဖန္တီးၿပီး string data အသစ္ထပ္ထည့္တယ္ ။
echo $a ."<br/>";            //output > Hello
echo $Hello."<br/>";        //output > Have a good day.
echo $$a."<br/>";            //output > Have a good day.
?>

$$a ကုိ Variable variables လို႔ေခၚပါတယ္ ။ သူကဘယ္လိုအလုပ္လုပ္သြားတာလဲ ၊? နားလည္လြယ္ေအာင္ရွင္းျပရရင္
ပထမ variable ကကုိယ္စားျပဳတဲ့ တန္ဖိုးကုိယူတယ္။ ၿပီးေနာက္မွာ အဲ့ဒီ တန္ဖိုး ကကုိယ္စားျပဳတဲ့ ေနာက္ထပ္တန္ဖိုးကုိယူတယ္။
အေပၚက ဥပမာ ပံုစံ ကုိပိုနားလည္ေအာင္ {} ေလးထည့္ၿပီး ၾကည့္ၾကည့္မယ္။
// echo ${$var[1]}; // ပထမ variable
//echo ${$var}[1];  // ဒုတိယ variable

အိုေခမယ္ေနာ္ ။ ေအာက္ကနမူနာကုတ္ကုိကူးၿပီး Run ၾကည့္မယ္ဆိုရင္ ပို ၿပီးနားလည္သေဘာေပါက္ သြားမွာပါ။
<?php
$a ="MyoChit";
$b="PaingOo";
$c="MgShan";
$d="NandaHtun";
$e="PhyoMin";

$students = array ('a','c','e');

 foreach ($students as $seat){
    echo $$seat . "<br/>";
}
?>
ဟုတ္ၿပီ $aက 1 $b က 2 ဆိုရင္ $$a က 3 ဒီလိုမဟုတ္လား ??
ဒါဆိုရင္ေတာ့ အေပၚကရွင္းျပတာကုိေနာက္ထပ္တစ္ေခါက္ထပ္ဖတ္ဖို႔လိုေနပါၿပီ။ ေသေသခ်ာခ်ာနားမလည္ေသးလို႔
ဒီေမးခြန္းေမးတာပါ။ဒါကုိလည္းအပစ္မေျပာပါဘူး။ကၽြန္ေတာ့္တုန္းက ဒါေလးလိပ္ပတ္လည္ေအာင္ တင္တစ္ႏွစ္ေလာက္
ေလ့လာလိုက္ရတယ္။
 $$$a ဆိုၿပီးေရာ သံုးလို႔မရဘူးလား ? ဒါပဲလား ?
မခက္ပါဘူး ။သိခ်င္ စမ္းၾကည့္လိုက္ ။ခ်ေရး Server ကေနလွမ္းေခၚ ။
ကဲ .... ေနာက္ေဆြးေႏြးခ်က္မွကၽြန္ေတာ္တို႔ ထပ္ေတြ႕ရေအာင္ ။ ေက်းဇူး ။






Read more ...

ေမာ္လျမိဳင္မုန္႔ဟင္းခါး

Feb 12, 2014
ေမာ္လျမိဳင္မုန္႔ဟင္းခါးက ငါးျပဳတ္ရည္သီးသန္႔ပါပဲ ။ကုလားပဲမွဳန္႔ နဲ႕ဆန္မွဳန္႔ထည့္ခ်က္ေလ့မရွိပါဘူး ။
ၿပီးေတာ့ နႏြင္းမွဳန္႔အ၀ါေရာင္နဲ႕ပဲခ်က္ေလ့ရွိၾကပါတယ္ ။
ထူးျခားခ်က္က ေတာ့ငွက္ေပ်ာပင္ဖတ္ကုိသီးသန္႔အိုးတစ္လံုးနဲ႕သပ္သပ္ထားတတ္ၾကတယ္ ။
၀ယ္စားတဲ့သူေတြကလည္း ငွက္ေပ်ာပင္မ်ားမ်ား ငွက္ေပ်ာပင္နည္းနည္း ငွက္ေပ်ာပင္လံုး၀မထည့္
ႏွစ္သက္သလိုေတာင္းဆိုၿပီး စားလို႔ရပါတယ္ ။ငွက္ေပ်ာပင္ဖတ္ကုိလည္း အခိုင္ထြက္ၿပီးသားငွက္ေပ်ာအူတိုင္ကုိ ပဲသံုးတတ္ၾကပါတယ္ ။ အဲဒီငွက္ေပ်ာအူတိုင္က အခ်ိဳအရသာပုိကဲတာမို႔ ပိုစားလို႔ေကာင္းေပမယ့္ အမွ်င္ေတြလည္းပိုမ်ား တတ္ပါတယ္ ။

အဲ ... အဲဒီမွာ မုန္႔ဟင္းခါးေသာက္တယ္လို႔မေျပာဘူး
မုန္႔ဟင္းခါးစားတယ္လို႔ပဲေျပာတယ္ ။ဘာလို႔လည္းဆိုေတာ့ မုန္႔ ဟင္းခါးရည္ကုိ မုန္႔ဖတ္နဲ႕ကြက္တိ
ခ်ိန္ၿပီးထည့္ေပးတာေၾကာင့္ပါ ဟင္းရည္မ်ားမ်ားထည့္စားေလ့မရွိပါဘူး ။ မြန္မုန္႔ဟင္းခါးကုိအေၾကာ္
ထည့္စားလို႔သိပ္မလိုက္ဖက္ပါဘူး ။အေၾကာ္အရသာကသပ္သပ္ျဖစ္ေနတတ္လို႔ပါ ။

Read more ...

Windows 9 ကုိ Aprial 2015 ထဲမွာထုတ္မယ္ လို႔ Microsoft ေျပာ

Jan 14, 2014

San Francisco မွာက်င္းပခဲ့တဲ့ Developer Conference မွာ Microsoft ဟာသူတို႔အေနနဲ႕ Windows 9 ကုိ April 2015 ေလာက္
မွာ release လုပ္ေပးမွာျဖစ္တယ္လို႕ ဖြင့္ေျပာခဲ့ပါတယ္ ။ပင္မစီမံကိန္းရဲ႕တစ္စိတ္တစ္ပိုင္းပါ၀င္သူျဖစ္တဲ့ Paul Thurrott က
ဒီ OS မွာMicrosoft ကေန အစိတ္အပို္င္းအားလံုးကုိ ထပ္တိုး updates လုပ္ထားတယ္လို႕ဆိုပါတယ္။
ဘာေတြဘယ္လိုေျပာင္းလဲလာမယ္ဆိုတာေသခ်ာမသိရေသးေပမယ့္လည္း windows 8 အေပၚဆန္႕က်င္စိတ္ထားသူေတြ
ႏွစ္သက္ေစဖို႕ျဖစ္လာမယ္လို႔ဆိုပါတယ္။Microsoft ရဲ႕ ပိုေကာင္းလာမယ့္ application ဒီဇိုင္းေတြအတြက္ 'Metro 2.0' ကုိ
ထည့္သြင္းေပးမယ္ လို႔အစီရင္ခံစာမွာေဖာ္ျပထားပါတယ္။ျဖဳတ္ထားခဲ့တဲ့ Start Menu လည္းျပန္ပါလာမယ္လို႔ဆိုပါတယ္။
Windows 9 ကုိျမင္ေတြ႕ရဖို႕ကေစာင့္ရဦးမွာျဖစ္ေပမယ့္ Windows 8.1 မွာတင္ကုိ Start button ကုိ Microsoft က ျပန္ထည့္
ေပးထားခဲ့ၿပီၿဖစ္ပါတယ္။Windows 9 ေနာက္ဆံုးအဆင့္ ကုိဖန္တီးေနၿပီျဖစ္ၿပီး Plan တစ္ခ်ိဳ႕ကုိအသံုးျပဳသူအဆင္ေျပဖို႕ေျပာင္း
လဲထားေၾကာင္းကိုလည္း ေျပာၾကားသြားခဲ့ပါတယ္။
Windows 8 ကုိ Windows phone kernel မွာအေျချပဳဖန္တီးခဲ့တာျဖစ္သလို Windows 9 မွာလည္းပဲဒီအတိုင္းဆက္လက္အသံုးျပဳထားမွာျဖစ္ပါတယ္။
ဒါေပမယ့္Windows 9 မွာ thousand per second နဲ႕ CPU ကုိ Waking up လုပ္မွာမို႕Windows 8 ထက္အဆမ်ားစြာပိုမိုျမန္ဆန္စြာအသံုးျပဳႏိုင္မွာျဖစ္
ၿပီး ဒီဖန္တီးမွဳဟာအသစ္ထြက္ေပၚလာမယ့္ Intel ရဲ႕ ျမန္ႏွဳန္းျမင့္ Haswell chips ေတြေပၚမွာ အေကာင္းဆံုးသံုးစြဲႏိုင္ဖို႕အတြက္ ျဖစ္တယ္လို႔ဆိုပါတယ္။
Windows 8 ဟာ failed ျဖစ္ခဲ့တယ္လို႔ဆိုႏိုင္ေပမယ့္ Windows 9 မွာေတာ့ အသံုးျပဳသူအားလံဳးကုိစိတ္ေက်နပ္ေစႏိုင္လိမ့္မယ္လို႕ နည္းပညာနယ္ပယ္
ကပညာရွင္တို႕ကသံုးသပ္ေနၾကပါတယ္။
Read more ...