• 31-07-2010, 16:11:38
    #1
    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.
  • 31-07-2010, 16:23:28
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    http://wiki.ceviz.net/index.php/Php_dosya_okuma
  • 31-07-2010, 16:25:40
    #3
    Üyeliği durduruldu
    ini_set diye bir method var
    root a çıkıp onu fopen edemeyebilirsiniz ama ini_set fonksiyon kullanımı açıksa php.ini yi değiştirebilirsiniz.
  • 31-07-2010, 16:27:16
    #4
    Hocam teşekkürler. Şimdi birkaç sorun olacak. orda veri.db yi çekmiş sistem. Fakat şöyle birşey olacak;
    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
    #5
    THR
    Üyeliği durduruldu
    Alwuhush adlı üyeden alıntı: mesajı görüntüle
    Hocam teşekkürler. Şimdi birkaç sorun olacak. orda veri.db yi çekmiş sistem. Fakat şöyle birşey olacak;
    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.
    eğer illa ini kullanmak zorunda değilsen xml kullanmanı tavsiye edebilirim
  • 31-07-2010, 16:35:05
    #6
    Üyeliği durduruldu
    sadece 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
    #7
    Ü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:41
    #8
    saho adlı üyeden alıntı: mesajı görüntüle
    <?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);
    ?>
    Hocam PM'ye bir msn alabilirmiyim müsaitseniz?