PHP
Read XML doc By using SimpleXML
Tuesday, 30 March 2010 11:52
ဒီ post မွာေတာ့ XML document ထဲက value ေတြကိုဘယ္လိုဖတ္တယ္ဆိုတာေရးျပ မွာျဖစ္ပါတယ္။ ဒါကေတာ့ book.xml file ျဖစ္ပါတယ္။
<?xml version="1.0"?>
<books>
<book type="Computer">
<title>PHP Web Services</title>
<author><name>Zack</name></author></book>
</books>
အဲဒီ XML ထဲက values ေတြကို SimpleXML ကိုသံုးျပီးဖတ္ပါမယ္။
<?
$xml = simplexml_load_file('book.xml');
$book = $xml->book[0];
echo "Book title : " . $book->title ."\n";
echo "Book author name : " . $book->author->name ."\n";
$attributes = $book->attributes();
echo "Book type : " . $attributes['type'] ."\n";
?>
ဒီ code မွာၾကည့္မယ္ဆိုရင္ book.xml ကို local လုပ္ပါမယ္။
$xml = simplexml_load_file('book.xml');
အဲလိုဆိုရင္ေတာ့ $XML ဆိုတဲ့ variable ထဲကို XML obj ရဲ႕ function ေတြကိုသံုးျပီး access လုပ္လို႕ရေအာင္လုပ္ျပီးသြားျပီးျဖစ္ပါတယ္။
$book = $xml->book[0];
XML file ထဲမွာရွိေနတဲ့ first element ကို access လုပ္ထားတာျဖစ္ပါတယ္။ ေနာက္ျပီးတျခား value ေတြကိုဆက္ျပီး access
လုပ္ပံုေလးကိုၾကည့္ရေအာင္။
echo "Book title : " . $book->title ."\n";
echo "Book author name : " . $book->author->name ."\n";
$attributes = $book->attributes();
echo "Book type : " . $attributes['type'] ."\n";
Book Title ကိုျပခ်င္ရင္ေတာ့ $book->title ကိုသံုးသြားတယ္။ Book Author Name ကိုျပခ်င္ရင္ေတာ့ $book->author->name
ကိုသံုးပါတယ္။ Book element ရဲ႕ Attribute ျဖစ္တဲ့ Type ကိုုျပခ်င္တယ္ဆိုရင္ေတာ့ဒီလိုသံုးပါတယ္။
$attributes = $book->attributes();
echo "Book type : " . $attributes['type'] ."\n";
Using DOM XML in PHP
Thursday, 25 March 2010 08:25
PHP မွာ XML ကို access လုပ္နိုင္တဲ့ေနာက္ API တစ္ခုကေတာ့ DOM ပဲျဖစ္ပါတယ္။ ကြ်န္ေတာ္ဒီ post မွာ႐ိုက္ျပတဲ့ XML မ်ဳိးကို
DOM API သံုးျပီးေရးမယ္ဆိုလည္းရပါတယ္။
<? $xmlstr = <<<XML
<books>
<book>
<title/>
</book>
</books>
XML;
$doc = new DOMDocument;
$doc->preserveWhiteSpace = false;
$doc->loadXML($xmlstr);
$books = $doc->getElementsByTagName('book');
$books->item(0)->setAttribute('type', 'Computer');
$books->item(0)->childNodes->item(0)->nodeValue = 'PHP Web Services';
$author_node = $doc->createElement('author');
$books->item(0)->appendChild($author_node);
$name_node = $doc->createElement('name');
$name_node->nodeValue = 'Zack';
$author_node->appendChild($name_node);
echo $doc->saveXML();
?>
ဒီ code နွစ္ခုရဲ႕သေဘာတရား ကေတာ့ အတူတူပဲျဖစ္ပါတယ္။ API မတူတဲ့အတြက္သံုးသြားတဲ့ function ေလးေတြ ကြာေနတာ
တစ္ခုပဲရွိပါတယ္။ ဥပမာအေနနဲ႕ childNodes, nodeValue, appendChild စတာေတြကိုေတြ႕နိုင္ပါတယ္။ သေဘာတရားျခင္း
တူေနတဲ့အတြက္ အရွည္ မ ေရးျခင္ေတာ့ပါဘူး။ ဒီ DOM သံုးျပီးေရးတဲ့ code ကအနည္းငယ္ ပိုရွည္တာကို ေတြ႕ရပါတယ္။
ေနာက္တစ္ခုက ေတာ့ preserveWhiteSpace ကို true/false ေျပာင္းျပီး ႐ိုက္ၾကည့္ရင္ ထြက္လာတဲ့ Result ရဲ႔ XML tag
ေတြၾကားမွာ Space ပါတာ မပါတာ ကြာတာကို ေတြ႕နိုင္ပါတယ္။
SimpleXML in PHP
Tuesday, 23 March 2010 10:25
Joomla မွာ RSS ကိုထည့္ရင္းနဲ႕ PHP မွာ XML ကိုသံုးျပီး Web service
လုပ္တာကိုပါဆက္ျပီးဖတ္ျဖစ္သြားပါတယ္။ ဒီ post မွာကေတာ့
XML တစ္ခုဘယ္လို create လုပ္မယ္ ဆိုတာပါမယ္။ ျပီးေတာ့ XML ထဲက Data ေတြကိုဘယ္လို ဖတ္တယ္ ဆိုတာေလးကို
ေရးမွာျဖစ္ပါတယ္။ Comment မွာ XML အေၾကာင္းသိခ်င္တယ္ေျပာတဲ့သူ အတြက္လည္းဒီ post ကိုလာဖတ္ေစခ်င္ ပါတယ္။
ျပီးေတာ့မွေနာက္တစ္ဆင့္အေနနဲ႕ Web service ေတြကိုသြားပါမယ္။ အခုေတာ့ very easy and simple ျဖစ္တာေလးနဲ႕ပဲစလိုက္ပါမယ္။
<?
$xmlstr = <<<XML
<books>
<book>
<title/>
</book>
</books>
XML;
$xml = new SimpleXMLElement($xmlstr);
$book = $xml->book[0];
$book->addAttribute('type', 'Computer');
$book->title = 'PHP Web Services';
$author = $xml->book[0]->addChild('author');
$author->addChild('name', 'Zack');
file_put_contents('book.xml', $xml->asXML());
?>
ဒီ code မွာၾကည့္မယ္ဆိုရင္ေတာ့ SimpleXMLElement ဆိုတာကိုေတြ႕နိုင္ပါတယ္။ SimpleXMLElement ကိုသံုးျပီး XML object
တစ္ခုကိုေဆာက္လိုက္တာျဖစ္ပါတယ္။
$xml = new SimpleXMLElement($xmlstr);
အဲဒါဆိုရင္ XML object တစ္ခုကိုရျပီ။ XML ေတြရဲ႕
structure အရ Book ဆိုတဲ့ element တစ္ခုကို create လုပ္မယ္ဗ်ာ။
$book = $xml->book[0];
Book[0] ဆိုတာကေတာ့ array notation ထဲကေန index 0 ကိုယူလိုက္တာျဖစ္ပါတယ္။ XML ထဲမွာနာမည္တူ element
ေတြကတစ္ခုထက္မကရွိေနနိုင္တာမို႕ first element
ကိုယူမယ္လို႕ဆိုလိုတာျဖစ္ပါတယ္။
$book->addAttribute('type', 'Computer');
ဒါကေတာ့ Book ဆိုတဲ့ Element ထဲကို type ဆိုတဲ့ attribute တစ္ခုကိုထည့္လိုက္ျဖစ္ပါတယ္။
$book->title = 'PHP Web Services';
ဒီ line ကိုရွင္းရမယ္ဆိုရင္ေတာ့ကြ်န္ေတာ္တို႕ XML object ကို $xmlstrဆိုတဲ့ string ေလးကို pass လုပ္ခဲ့တာကို သတိျပဳမိမယ္
ထင္ပါတယ္။ အဲဒီ string ထဲမွာ <title/>
ဆိုတာဟာဒီ $book->title ဆိုျပီး value တစ္ခုထည့္ဖို႕လုပ္ခဲ့တာျဖစ္ပါတယ္။
Book ဆိုတဲ့ Element ထဲမွာ Author ဆိုတဲ့ Element တစ္ခုကို create လုပ္တယ္။
ျပီးေတာ့လည္း Name ဆိုတဲ့ Author ရဲ႕
Child element ကိုထပ္ျပီး Dynamically လုပ္မယ္ဗ်ာ။ အဲဒီအတြက္သံုးထားတာကေတာ့ addChild ဆိုတဲ့ Function ပဲျဖစ္ပါတယ္။
ဒီလိုဆိုရင္ေတာ့ author ဆိုတဲ့ element တစ္ခုရျပီး
$author = $xml->book[0]->addChild('author');
author ထဲကို child element
တစ္ခုထည့္ခ်င္တယ္ဆိုရင္ေတာ့
$author->addChild('name', 'Zack');
ေနာက္ဆံုးအဆင့္အေနနဲ႕ကေတာ့ file_put_contents ဆိုတဲ့ method ကိုသံုးျပီး XML file တစ္ခုကို create လုပ္သြားမွာျဖစ္ပါတယ္။
file_put_contents('book.xml', $xml->asXML());
asXML ဆိုတဲ့ function ကိုသံုးျပီး simpleXML Element ထဲက string ကိုယူျပီး file_put_contents ကိုသံုးျပီး book.XML
ကို႐ိုက္္လိုက္တာျဖစ္ပါတယ္။ ႐ိုက္လိုက္တဲ့ XML ကိုဖြင့္ၾကည့္လိုက္မယ္ဆိုရင္ေတာ့ဒီလိုျမင္ရပါလိမ့္မယ္။
<?xml version="1.0"?>
<books>
<book type="Computer">
<title>PHP Web Services</title>
<author><name>Zack</name></author></book>
</books>
Sorting IP Address
Sunday, 03 January 2010 14:37
PHP မွာ IP Address ေတြကို sorting လုပ္လို႕ရတဲ့ function ကို လိုက္ရွာရင္း natsort ဆိုတဲ့ function ကိုသြားေတြ႔တယ္။natsort($a);
For eg;
<?php
$a = array('100.200.300.400', '100.50.60.70', '100.8.9.0');
natsort($a);
echo implode(' < ',$a);
?>
Page 3 of 12
«StartPrev12345678910NextEnd»Login Form
Latest Post
Categories Table View
- Reader's Conner (133)
- PHP (48)
- Joomla CMS (46)
- Codeigniter (18)
- jQuery (12)
- iDhamma (11)
- Mobile Development (10)
- PHP & AJAX (4)
- Apache (3)
- For Mac (3)
- mySQL (2)
- DhammaDroid (1)