ما هو ملف INI؟
ملفات INI (تهيئة) هي ملفات تكوين نصية بسيطة منظمة في أقسام مع أزواج مفتاح-قيمة. كانت الصيغة الرئيسية لتكوين تطبيقات ويندوز قبل أن يصبح السجل وتكوينات XML/JSON معيارية. تنظّم الصيغة الإعدادات ذات الصلة تحت أسماء أقسام محاطة بأقواس مربعة، حيث يُكتب كل إعداد كزوج مفتاح=قيمة في سطره الخاص.
تتمتع ملفات INI بشعبية واسعة الانتشار لأنها لا تتطلب معرفة بنية JSON أو YAML المعقدة — أي شخص يستطيع تحريرها بالمفكرة. ولا تزال تُستخدم على نطاق واسع حتى اليوم في البرامج القديمة وأدوات المطورين ومحركات الألعاب.
كيفية فتح ملفات INI
- المفكرة (ويندوز) — مدمج، لا يحتاج تثبيتاً
- أي محرر نصوص — دعم عالمي على جميع المنصات
- VS Code (ويندوز، ماك، لينكس) — تلوين بناء الجملة مع الإضافات
- Notepad++ (ويندوز) — تحرير محسّن مع تلوين الألوان
- Vim / Nano (لينكس/ماك) — تحرير في الطرفية
المواصفات التقنية
| الخاصية | القيمة |
|---|---|
| الصيغة | نص عادي |
| البنية | [قسم] / مفتاح=قيمة |
| التعليقات | فاصلة منقوطة ; أو مربع # |
| الترميز | ASCII، UTF-8، UTF-16 |
| التداخل | غير مدعوم (بنية مسطحة) |
| نهايات الأسطر | LF أو CRLF |
الاستخدامات الشائعة
- إعدادات التطبيقات: تكوين تطبيقات سطح المكتب مثل
app.ini - تكوين PHP: ملف
php.iniيتحكم في سلوك PHP وحدوده الزمنية وامتداداته - تكوين Git: ملف
.gitconfigيستخدم صياغة INI لهوية المستخدم والأسماء المستعارة - إعدادات الألعاب: كثير من الألعاب تخزن الدقة ومفاتيح التحكم وإعدادات الرسومات في ملفات INI
- Wine: يستخدم
wine.iniلتكوين توافق تطبيقات ويندوز على لينكس
مثال على بنية ملف INI
[قاعدة البيانات]
host=localhost
port=5432
name=myapp_db
[الخادم]
host=0.0.0.0
port=8080
debug=false
; مفاتيح API — لا تُضمن أبداً في التحكم بالإصدار
[المصادقة]
secret_key=استبدل_بالمفتاح_الحقيقي
اعتبارات الأمان
ملفات INI نصية عادية ويجب ألا تحتوي على كلمات مرور أو مفاتيح API أو سلاسل اتصال تُودع في التحكم بالإصدار. استخدم متغيرات البيئة أو مديري الأسرار المشفرة للقيم الحساسة. إذا أُودع ملف INI يحتوي على أسرار عن طريق الخطأ، قم بتدوير بيانات الاعتماد فوراً واستخدم git filter-repo لمسح الملف من السجل.
مكتبات القراءة في لغات البرمجة
- Python:
configparser(مكتبة قياسية) - PHP: الدالة المدمجة
parse_ini_file() - Node.js: حزمة
iniمن npm - Java:
java.util.Properties