INI バリデーター
php.ini、my.cnf、デスクトップエントリー、ツール設定などの INI 設定ファイルを検証し、サービスが起動を拒否する前に問題を見つけます。バリデーターは各行を読み取り、セクション、キーと値の組、コメント、引用符で囲まれた値を受け付けます。解釈できない行、閉じられていないセクションヘッダー、空のキー、閉じられていない引用符を報告します。また、重複するキーやセクションにも警告を表示し、各セクションのキー一覧を表示するため、構造をひと目で確認できます。
よくある質問
ここで有効と判定される INI ファイルの条件は何ですか?
空でない各行は、[database] のようなセクションヘッダー、host = localhost のような値を持つキー、またはコメントでなければなりません。これらに該当しない行、閉じられていないセクションヘッダー、空のキー、閉じられていない引用符付きの値はエラーになります。エラーがあるとファイルは無効と判定され、行番号とともに表示されます。
INI に統一された標準はありません。バリデーターはどのルールを使用しますか?
PHP、MySQLなど多くのツールで使われている一般的な方言に準拠しています。キーと値は = で区切り、= がない場合は : で区切ります。コメントは ; または # で始まり、引用符で囲まれていない値の後に空白を挟んで ; または # がある場合は、インラインコメントとして扱われます。セクション名には、Git形式のセクションのように、空白、ドット、引用符を含められます。INI にはデータ型がないため、値の型チェックは行いません。
キーが重複しているとどうなりますか?
同じセクションでキーが二重に定義されている場合、2つ目の定義の行番号とともに警告として報告されます。ほとんどの INI パーサーは最後の値を保持し、それ以前の値を黙って無視します。ファイルは有効と報告されます。
セクションが重複しているとどうなりますか?
同じセクションヘッダーが再び現れると警告として報告され、そのキーは最初に現れたセクションのキーと統合されます。プログラムによって繰り返しセクションの扱いが異なるため、通常は1つにまとめるのが最善です。
extension[] のような配列キーはサポートされていますか?
はい。PHP設定ファイルのように、[] で終わるキーは値をリストにまとめます。同じキーを繰り返しても重複として報告されません。セクション一覧にはキーが1回だけ表示されます。
グローバルキーとは何ですか?
最初のセクションヘッダーより前にあるキーは、どのセクションにも属しません。結果では「グローバルキー」として一覧表示され、多くのツールではデフォルト値または最上位の設定として扱われます。
引用符で囲まれた値はどのように扱われますか?
二重引用符で囲まれた値には ;、#、= を含められ、エスケープシーケンス \", \\, \n、\t を使用できます。一重引用符で囲まれた値はそのまま扱われます。同じ行で閉じられていない引用符付きの値はエラーになります。引用符で囲まれていない値は、前後の空白が削除されます。
構造はどこまで一覧表示されますか?
結果には、最大200個のセクションについて、各セクションのキー数とキー名が表示されます。各セクションのキーは最大50個まで表示され、すべてのセクション数とキー数も表示されます。エラーと警告はそれぞれ最大20件まで表示され、それを超える場合は追加件数が示されます。
[a.b] のような入れ子のセクションは認識されますか?
セクション名は記述どおりに保持されるため、[a.b] は a.b という名前のセクションであり、a のサブセクションではありません。ドットを入れ子として扱うかどうかは、プログラムによって異なります。バリデーターが確認するのは、名前が空でないことと、ヘッダーが閉じられていることだけです。
ファイルの最大サイズと変換方法を教えてください。
入力サイズは最大 5 MiB です。有効な INI ファイルをJSON、YAML、TOMLなどの形式に変換するには、セクションをオブジェクトに変換するデータ形式コンバーターを使用してください。