nasıl ben harici bir dosyayı okumak ve değişkenlerin içine içi koymak için php kullanıyorsunuz?

4 Cevap php

Ne yapmak için çalışıyorum bir adı varsa ben bile bilmiyorum, çünkü doğru bu sorunun başlığı oluşturmak için hiçbir fikrim yoktu.

Diyelim ki bunu aşağıdaki ile (örneğin denilen, settings.txt) harici bir dosya var diyelim:

template:'xaddict';
editor:'true';
wysiwyg:'false';

These are simple name:value pairs. I would like to have php take care of this file in such a way that I end up with php variables with the following values:

$template = 'xaddict';
$editor = 'true';
$wysiwyg = 'false';

Ben olacak kaç bu değişkenlerin bilmiyorum.

Nasıl gitmek ve bu yapmalıyım?

Dosyanın içindeki verileri basit adı şöyledir: değer çiftleri. Hayır yuvalama, hiçbir karmaşık veri. Tüm isimler $ adına dönüştürülmesi gerekir ve tüm değerleri gerçekten bir dize olup olmadığını göz ardı ederek, 'değer' dönüştürülmesi gerekir.

4 Cevap

Bir dize veya bir mantıksal olarak yorumlanır: Eğer "'gerçek' editörü" 'true' istiyor musunuz? Bazen, bazen boolean, nasıl hangi dize biliyorsun yoksa?

Eğer "numara = '9 '" varsa bir tamsayı olarak bir dize veya bir olarak yorumlanır Eğer '9 istiyorsun?' '09 ', Bir ondalık sayı veya sekizli olurdu? Nasıl "'numara = '3 .14" hakkında: dize veya yüzer? Bazen bir, bazen başka, nasıl biliyor yoksa?

Eğer bir değeri içindeki "'" (tek tırnak) varsa kaçtı mı? Eğer öyleyse, nasıl?

Dizi verileri herhangi bir beklenti var mı?

Vb

Düzenleme: Bu basit şekilde olacaktır, imo, sizin örnek verileri almak için örnek girişini kullanmak için:

$file = 'test.csv';
$fp = fopen($file, 'r');
while ($line = fgetcsv($fp, 1024, ':')) {
    $$line[0] = $line[1];
}
$settings = json_decode(file_get_contents($filename));

Dosyanızı varsayarak geçerli JSON formatında. Eğer değilse, bu yüzden ya da farklı bir yaklaşım kullanmak gerekir masaj ya.

Eğer JSON kullanıyorsanız, gibi bir şey kullanabilirsiniz:

extract(json_decode(file_get_contents('settings.json')));

Ekstresinin kullanılması tehlikeli olabilir, bu yüzden ben bir dizide bu ayarları saklamak için öneririm:

$settings = json_decode(file_get_contents('settings.json'));

You should read your file to an array, with the file() function, then you should cycle on it: for each line (the file() function will return an array, one line per item), check if the line is not blank, then explode() on the ":" character, trim the pieces, and put them into an array. You will end up win an array like this:

[template] = xaddict
[editor] = true

o zaman bu bilgileri kullanabilirsiniz.

not otomatik olarak yerel değişkenler içine bu dönüştürmek etmeyin: güvenlik risklerini tanıtmak için harika bir yoldur, ve potansiyel olarak çok belirsiz hatalar (bu ayrıştırma tarafından tanıtıldı olanlar tarafından gizlenmiş yerel değişkenler).