同じサーバー上のファイルから変数を抽出するスクリプトを作成しようとしています。
問題は、ファイルに他に何が入るかわからないことです(スクリプトは他の人が使用するためのものです)。コード。
require や include のようなものではなく file_get_contents を使用することを考えましたが、行き詰まっています...文字列内のすべての変数を解析する方法はありますか? または、ファイルを含める「安全な」方法はありますか?
どうもありがとう、ジェームズ
同じサーバー上のファイルから変数を抽出するスクリプトを作成しようとしています。
問題は、ファイルに他に何が入るかわからないことです(スクリプトは他の人が使用するためのものです)。コード。
require や include のようなものではなく file_get_contents を使用することを考えましたが、行き詰まっています...文字列内のすべての変数を解析する方法はありますか? または、ファイルを含める「安全な」方法はありますか?
どうもありがとう、ジェームズ
file_get_contents + preg_match
それに合わせて巧妙な正規表現が必要になります。
すべての変数を3番目のファイルに入れてから、他の2つのファイルに含めてみませんか?
あなたがやろうとしていることは危険に聞こえます。特に「他の人が使用する」ということは、他の人がそれらのファイルを書き込めることを意味します。
php tokenizerを試す必要があります。
この場合、ユーザーがPHPファイルを編集することはまったく望ましくありません。ご指摘のとおりinclude()
、内容が信頼できない場合はファイルを作成できません。ファイルをPHPとして実行することはできないため、PHPであってもファイルに利点はありません。そのため、独自のスクリプトがより読みやすい形式を選択できます。たとえば、このparse_ini_file
関数を使用すると、ファイルから構成値を簡単に読み取ることができ.ini
ます。
どうしてもPHPファイルである必要がある場合は、手動で解析する必要があるかもしれません。ファイルがPHPのサブセットであることを要求できる場合(たとえば、変数宣言のみが含まれていること)、それでも非常にハック的ですが、実行可能に聞こえます。ファイルが合法的に完全に機能するPHPスクリプトであり、いくつかの変数がたまたま定義されている場合は、アーキテクチャを完全に再考する必要があります。