<?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(); ?>
Çıktısı
<site> <kategori> <![CDATA[ Bu bir test yazısıdır ]]> </kategori> </site>