Basit XML Oluşturma Sınıfı

PHP
81 lines
<?php
Class XML{
var $icerik="";
var $anaEtiket="";
var $altEtiket="";
var $CRLF="\r\n";
var $son="";
Function XML($Version="1.0",$Encoding="utf-8"){
$this->icerik.="<?xml version=\"{$Version}\" encoding=\"{$Encoding}\"?>{$this->CRLF}";
}
Function etiketOlustur($etiketIsmi="root",$ozellik=""){
$etiketIsmi=$this->filtre($etiketIsmi);
$this->anaEtiket=$etiketIsmi;
$ozellik=$this->ozellikAyir($ozellik);
return $this->icerik.="<{$etiketIsmi}{$ozellik}>{$this->CRLF}";
}
Function etiketEkle($etiketIsmi,$ozellik,$veri="",$CDATA=true){
$etiketIsmi=$this->filtre($etiketIsmi);
if(empty($veri)){
if(!empty($this->altEtiket)){
$this->icerik.="</{$this->altEtiket}>{$this->CRLF}";
}
$this->altEtiket=$etiketIsmi;
$ozellik=$this->ozellikAyir($ozellik);
return $this->icerik.="<{$etiketIsmi}{$ozellik}>{$this->CRLF}";
}else{
$ozellik=$this->ozellikAyir($ozellik);
return $this->icerik.=$CDATA?"<{$etiketIsmi}{$ozellik}>{$this->CRLF}<![CDATA[{$veri}]]>{$this->CRLF}</{$etiketIsmi}>{$this->CRLF}":"<{$etiketIsmi}{$ozellik}>{$veri}</{$etiketIsmi}>{$this->CRLF}";
}
}
Function son(){
if($this->son){
return $this->icerik;
}else{
$this->son=true;
return $this->icerik=$this->altEtiket==""?$this->icerik."</{$this->anaEtiket}>":$this->icerik."</{$this->altEtiket}>{$this->CRLF}</{$this->anaEtiket}>";
}
}
Function goster(){
ob_start();
header("Content-type: text/xml");
echo $this->son();
ob_end_flush();
}
Function kaydet($dosya){
if(!$Handle=fopen($dosya,'wb+')){
$this->hata("Dosya Yazılamıyor");
}
flock($Handle,LOCK_EX);
fwrite($Handle,$this->son());
return fclose($Handle);
}
Function hata($hataMetni='',$hataNo='',$Stop=true){
exit($hataMetni);
}
Function ozellikAyir($veri){
$ozellik='';
if(is_array($veri)){
foreach($veri as $anahtar=>$deger){
$deger=$this->filtre($deger);
$ozellik.=" $anahtar=\"$deger\"";
}
}
return $ozellik;
}
Function filtre($veri){
$veri=trim($veri);
$ara=array("<",">","\"");
$degistir=array("","","'");
return str_replace($ara,$degistir,$veri);
}
}
$n=new XML($Version="1.0",$Encoding="utf-8");
$n->etiketOlustur($etiketIsmi="site",'');
$n->etiketEkle("kategori",'',$veri="Bu bir test yazısıdır",$CDATA=true);
$n->goster();
$n->kaydet($dosya="data.xml");
$n->hata();
$n->son();
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Çıktısı

XML
5 lines
<site>
<kategori>
<![CDATA[ Bu bir test yazısıdır ]]>
</kategori>
</site>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX