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

PHP
59 lines
<?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);
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Çıktısı

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

 

Sizin Değerli Görüşlerinize İhtiyacımız Var.