Diziyi Metin Olarak Depolama ve Geri Dönüştürme

<?php
class diziDepola{
	function dizidenMetine($dizi,$baskila=0,$doldur='',$sekme=1) {  
		$t=null;
		if (!$doldur) {  
			$metinDondur='array(';  
		}  
		$n=rand();  
		$calis[$n]=0;  
		for($i=0;$i<$sekme;$i++) { 
			$t.="\t"; 
		}  
		foreach ($dizi as $anahtar => $deger) {  
				if (!$calis[$n]) {  
		$c='';  
				} else {  
		$c=', ';  
				} 
				$calis[$n]++;  
				if (is_array($deger)) {  
		$metinDondur.=$c."\n".$t.'\''.$anahtar.'\' => array('.dizidenMetine($deger,$baskila,1,$sekme+1);  
		continue 1;  
				}  
				$metinDondur.=$c."\n".$t.'\''.$anahtar.'\' => \''.$deger.'\'';  
		}	  
		if (!$doldur) {  
				$metinDondur.=');'."\n";  
		} else {  
				$metinDondur.=')';  
		}  
		if ($baskila) {  
				return gzcompress($metinDondur, 9);  
		} else {  
				return $metinDondur;  
		}  
	}  
	function metindenDiziye($dizitxt,$baskicoz=0) {
		if (!$dizitxt) {return array();}
		if ($baskicoz) {  
			eval('$return_array = '.gzuncompress($dizitxt));  
			return $return_array;  
		} else {  
			if (!eval('$return_array = '.$dizitxt)) {
				print '<h2>metindenDiziye HATA</h2>';
				print $dizitxt;exit;
			}
			return $return_array;  
		}  
	}  
}
$diziDepola = new diziDepola;
$baskila = 1;// (0 veya 1)
$dizi=array("merhaba nasilsiniz",1,23,6);
$dizi_text = $diziDepola->dizidenMetine($dizi,$baskila);
echo $dizi_text."<br>";
$baskicoz = 1;// (0 veya 1)
$dizi = $diziDepola->metindenDiziye($dizi_text,$baskicoz);
print_r($dizi);
?>

Çıktısı

xÚK,*J¬ÔàâT7PW°µSPÏM-ÊHLJTÈK,ÎÌ)ÎÌˬR×QJB¤ !<#ÏÈÂ5†pÍÔ5­¹T•
Array ( [0] => merhaba nasilsiniz [1] => 1 [2] => 23 [3] => 6 )

 

Zip Arşiv Sınıfı Kullanımı

Bu sınıfı kullanarak klasörleri dosya ve alt klasörleri ile birlikte sıkıştırabilirsiniz.

<?php
class Zipleyici extends ZipArchive { 
 public $zipadi=NULL;
 public function klasorEkle($dizin) { 
 $this->open($this->zipadi,ZipArchive::CREATE);
 echo $dizin . ' Ekleniyor <br>'; 
 $this->addEmptyDir($dizin); 
 $dosyalar = glob($dizin . '/*'); 
 foreach ($dosyalar as $dosya) { 
 echo $dosya . '<br>'; 
 if (is_dir($dosya)) { 
 $this->klasorEkle($dosya); 
 }elseif (is_file($dosya)){ 
 $this->addFile($dosya); 
 } 
 } 
 } 
}

$zip=new Zipleyici;
$zip->zipadi="arac.zip";
$zip->klasorEkle("arac");//klasör adı
$zip->close();
?>

Not: Extend ile dahil edilen ZipArchive sınıfı; PHP 5.2.0 ve sonrası veya PECL zip 1.1.0 ve sonrasında çalışmaktadır.