PHP - kodu çalıştırmadan başka bir PHP dosyasından değişkenleri alın?

4 Cevap php

Ben aynı sunucuda bir dosyadan değişkenleri ayıklamak için bir komut dosyası oluşturmak için çalışıyorum.

Sorun else dosyasındaki zaman tüm (diğer insanların kullanımı için script) olacak bilmiyorum, olduğunu, bu yüzden gerçekten tüm yüklemek istemiyorum içeriği veya kod herhangi yürütmek.

Ben oldukça gerektiren veya dahil gibi bir şey daha file_get_contents kullanarak düşündüm, ama ben takıldım ... dize içinde değişkenleri tüm ayrıştırmak için bir yolu var mı? Alternatif olarak, dosyaları dahil etmek için bir "güvenli" bir yolu var mı?

Many thanks, James

4 Cevap

file_get_contents + preg_match

Sen onunla birlikte gitmek için bazı kurnaz regex gerekir.

Neden onları diğer iki dosya daha sonra, üçüncü bir dosyaya tüm değişkenleri dahil koymuyorsun?

Ne yapmaya çalışıyorsun "diğer insanların kullanması için" kastın diğerleri bu dosyaları yazabilir, özellikle tehlikeli geliyor.

Bu durumda, kullanıcıların tüm bir PHP dosyasını düzenleme istemiyorum. Eğer işaret ettik gibi, include() dosya içeriğini güvenemiyorum eğer yapamam. PHP gibi dosyayı yürütemez yana, orada dosyasının bile being PHP için hiçbir avantaj, böylece kendi komut daha kolayca okuyabileceği bir biçim seçebilirsiniz. Örneğin, parse_ini_file function you can easily read configuration values from a .ini dosyası ile.

Kesinlikle bir PHP dosyası olmak varsa, elle ayrıştırmak girişimi gerekebilir. Eğer dosya hala çok hackish olsa uygulanabilir sesler (o değişken bildirimlerinde ama hiçbir şey içerdiğini, örneğin) PHP bir alt kümesi olması talep edebilirsiniz. Dosya meşru bazı değişkenler tanımlanabilir başına hangi tamamen fonksiyonel PHP komut dosyası, olabilir, muhtemelen tamamen mimarisini yeniden düşünmek zamanı.

Sen denemelisiniz php tokenizer.