PHP kullanarak Düzenleme PHP (yönetici merkezi)

3 Cevap

Ben (PHP ile yazılmış) konfigürasyon dosyalarını düzenleyebileceğiniz bir yönetici merkezi gelişmekte duyuyorum. Ben (çeşitli nedenlerle) bir mySQL tabloda bu değerleri depolamak istemediğin. Yani benim config.php gibi içeriği vardır ki:

   <?php
     $option1 = 1;
     $option2 = 2;
     $option4 = 5;
     $option7 = array('test','a','b',c');
   ?>

Şimdi yönetici sayfalarından birinde ben sadece vs Option2 veya Option4 gibi birkaç değerleri bu konuda gitmek için en iyi yolu ne olurdu Herhangi bir fikir değişen olacaktır söylüyorlar.

Ben bir seçenek tamamen PHP dosyasını okuyun ve regex kullanarak bölümlerini yazmak için olduğunu biliyorum. Bu daha verimli hale getirmek için herhangi bir şekilde? Ben config.php nedeniyle dosya, kullanıcının ucunda bazı hata kırmak istemiyorum. Çalıştığından emin olmak için nasıl herhangi bir fikir?

3 Cevap

Eğer yapılandırma değerlerini depolamak yolu hakkında bazı özgürlük varsa, ini dosyaları kullanabilirsiniz.

Yapmanız gereken tek şey bir dizi ini dosyasının içeriğini yük olduğunu parse_ini_file, o dizideki değerleri değiştirmek ve anlatıldığı gibi nihayet, yeni değerleri ile dosyanın üzerine this comment .

Güvenlik nedeniyle bu belge kökünden bu dosyaları yerleştirmek için iyi bir fikirdir.

ini dosyasının örnek içeriği:

[first_section]
one = 1
five = 5
animal = BIRD

[second_section]
path = "/usr/local/bin"
URL = "http://www.example.com/~username"

(safefilewrite fonksiyonunu kullanarak) örnek kod:

<?php
$ini_file = '/path/to/file.ini';
$ini_array = parse_ini_file($ini_file);

$ini_array['animal'] = 'CAT';

safefilerewrite($file, implode("\r\n", $ini_array));
?>

var_export () muhtemelen aradığınız fonksiyonudur.

Aşağıdaki kodu kullanarak bir dosyaya ayarlarını okuma / yazma:

$content = array();
//fill your array with settings;
$fh = fopen ( $bashfile, 'w' ) or die ( "can't open file" );
fwrite ( $fh, $content );
fclose ( $fh );

to read it you use: file_get_contents() //this will return a string value OR Line by line:

$lines = file('file.txt');
//loop through our array, show HTML source as HTML source; and line numbers too.
foreach ($lines as $line_num => $line) {
print "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n";
}