Merhabalar. Sorum şu olacaktı;
PHP bir panel ile .ini uzantılı dosyaların içerikleriyle oynanabilirmi?
.ini dosyasının adı şu şekilde olacak;
Xxx_Yyy
.ini dosyasının içeriği şu şekilde;
Spawn=0Age=18 gibi gibi birçok şey.
Böyle birşeyi bir arkadşaım yapmıştı. İnanamadım kaynak kodlarınıda vermedi size danışayım dedim. C++ falan birşeyler geveledi fakat pek çözemedim.
Şimdiden teşekkürler.
PHP ile .ini uzantılı dosyaların içerikleriyle oynanabilirmi?
7
●497
- 31-07-2010, 16:23:28Kimlik doğrulama veya yönetimden onay bekliyor.
- 31-07-2010, 16:27:16Hocam teşekkürler. Şimdi birkaç sorun olacak. orda veri.db yi çekmiş sistem. Fakat şöyle birşey olacak;argo adlı üyeden alıntı: mesajı görüntüle
Xxx_Yyy.ini'yi açacak,
Spawn=0
mesela bu değeri çekecek örnek sadece Spawn değerini gösterecek.
0 - Evsiz
1 - Oluşum
vs. vs. - 31-07-2010, 16:34:26Üyeliği durduruldueğer illa ini kullanmak zorunda değilsen xml kullanmanı tavsiye edebilirimAlwuhush adlı üyeden alıntı: mesajı görüntüle
- 31-07-2010, 16:35:05Üyeliği durduruldusadece okuma yapacaksanız şu sınıf işinizi görebilir
<?php class ini{ public $file; private $settings, $content, $cleanedContent; public function ini($file= "ayarlar.ini") { $this->readFromFile( $file ); } public function readFromFile( $file ) { if( !is_file( $file ) ) die("<b>".$file."</b> dosyası bulunamadı ."); $this->readFromString( file_get_contents( $this->file = $file )); return $this; } public function get($setName) { if(isset($this->settings[$setName])) return $this->settings[$setName]; else return null; } public function set($setName,$value) { $this->settings[$setName]=$value; } public function readFromString( $content ) { $this->Parse( $this->content=$content ); return $this; } private function Parse( $content ) { $this->cleanedContent = preg_replace( '/^[\#;](.*)$/i','',$content ); $this->cleanedContent = preg_replace( '/[\s]+\#.*$/im','',$this->cleanedContent); $lines = explode("\r\n",$this->cleanedContent); $isOpen=true; foreach( $lines as $line ) { if(preg_match('/\{if(.*)\}/i',$line,$matches) && $isOpen) { eval('$isOpen = '.stripslashes($matches[1]).';'); } elseif(preg_match('/\{elseif(.*)\}/i',$line,$matches) && !$isOpen) { eval('$isOpen = '.stripslashes($matches[1]).';'); } elseif(preg_match('/\{else\}/i',$line,$matches)) { $isOpen = !$isOpen; } elseif(preg_match('/\{endif\}/i',$line,$matches)) { $isOpen = true; } elseif($isOpen) { $key = trim(substr($line,0,$pos = strpos($line,'='))); $value = $this->evulate(trim(substr($line,$pos+1,strlen($line)))); $this->settings[$key] = $value; } } return $this; } private function error($msg) { trigger_error($msg,E_USER_WARNING); return $msg; } private function evulate($exp) { if (preg_match('/\<eval\>(.*)\<\/eval\>/i',$exp,$match)) eval('$exp='.$match[1].';'); return $exp; } } ?>Kullanımı
$Setting = new ini('ayarlar.ini'); echo $Setting->get("dbtype"); - 31-07-2010, 16:41:06Üyeliği durduruldu<?php
$dosya=file_get_contents("xy.ini");
$desen='|Spawn=([0-9]+?)|';
preg_match($desen,$dosya,$sonuc);
echo $sonuc[1];
?>
ekrana spawn değerini yazdırır değiştirip kayıt etmek için
<?php
$dosya=file_get_contents("xy.ini");
$desen='|Spawn=([0-9]+?)|';
$yeniDeger = 'Spawn=1';
$yaz = preg_replace($desen,$yeniDeger,$dosya);
file_put_contents("xy.ini",$yaz);
?> - 31-07-2010, 17:18:41Hocam PM'ye bir msn alabilirmiyim müsaitseniz?saho adlı üyeden alıntı: mesajı görüntüle