تحويل JSON إلى مصفوفة PHP

الصق مستند JSON لتحصل على مصفوفة PHP نصية منسّقة لملف مصدر .php: صيغة المصفوفات المختصرة ([...])، مسافات بادئة صحيحة، سلاسل نصية محاطة بعلامات اقتباس بشكل سليم، كائنات متداخلة تتحول إلى مصفوفات ترابطية، ومصفوفات تبقى مفهرسة. مفيد لتضمين بيانات API التجريبية في الاختبارات أو لتعبئة ملفات الإعداد.

كيفية تحويل JSON إلى PHP

  1. 1

    الصق JSON

    أي JSON صالح: كائنات، مصفوفات، أو بنى متداخلة بعمق.

  2. 2

    اختر الصيغة

    المختصرة `[...]` (PHP 5.4 فأحدث) أو الطويلة `array(...)` (نادراً ما تلزم الآن).

  3. 3

    اختر علامات اقتباس السلاسل

    علامات اقتباس مفردة (بدون استيفاء، مع تهريب الفواصل العليا) أو علامات اقتباس مزدوجة (تسمح باستيفاء `$`: عادةً ليس ما تريده للبيانات).

  4. 4

    انسخ المصفوفة

    الصقها في ملف `.php`، أو أسندها إلى `return`، أو غلّفها بـ `config([...])`.

مثال

المدخل:

{ "app": { "name": "MyApp", "debug": true, "hosts": ["h1.example.com", "h2.example.com"] } }

الناتج (صيغة مختصرة، علامات اقتباس مفردة):

[
    'app' => [
        'name' => 'MyApp',
        'debug' => true,
        'hosts' => [
            'h1.example.com',
            'h2.example.com',
        ],
    ],
]

تعيين الأنواع

JSON PHP
سلسلة نصية سلسلة نصية (اقتباس مفرد)
عدد صحيح int
عدد (عشري) float
قيمة منطقية true / false
null null
مصفوفة (JSON) مصفوفة مفهرسة
كائن (JSON) مصفوفة ترابطية

متى تستخدم المصفوفة الترابطية مقابل المفهرسة

في PHP يوجد نوع واحد من المصفوفات يجمع كلا السلوكين. أما JSON فيميّز بوضوح بين الكائن والمصفوفة، ومن ثم يكون التعيين كالتالي:

  • {} → مصفوفة ترابطية (['key' => value]).
  • [] → مصفوفة مفهرسة ([value, value]).

يحافظ المولّد دائماً على هذا التمييز؛ وخلط الاثنين في PHP جائز لكنه مربك.

مزالق خاصة بـ PHP

  • مفاتيح السلاسل الرقمية. يحوّل PHP القيمة "42" إلى مفتاح صحيح 42 داخل المصفوفة. إذا كان JSON لديك يستخدم سلاسل رقمية كمفاتيح وتحتاج إلى إبقائها سلاسل نصية، فإن التحويل ذهاباً وإياباً عبر array_combine لن يحافظ عليها.
  • الأعداد الصحيحة الكبيرة. يمكن لـ JSON أن يحتوي أعداداً صحيحة أكبر من PHP_INT_MAX في الأنظمة ذات 32 بت. ينبّه المولّد عندما يكون ذلك ممكناً.
  • UTF-8. سلاسل PHP هي تسلسلات بايتات؛ والمولّد يُخرج UTF-8 حرفياً. تأكد من حفظ ملف .php بترميز UTF-8 دون BOM.

حالات الاستخدام

  • ملفات الإعداد. يستخدم كل من Laravel وSymfony إعدادات على هيئة مصفوفات PHP. ونقل إعداد JSON بأسلوب المورّدين يعمل جيداً.
  • بيانات الاختبار التجريبية. تكون بيانات PHPUnit التجريبية أنظف كمصفوفات مقارنةً بملفات JSON التي تُحمّل وقت التشغيل.
  • البذور (Seeders). غالباً ما تبدأ بذور قواعد البيانات في Laravel كتفريغ JSON ثم تتحول إلى مصفوفات PHP.

أخطاء شائعة

  • إعادة تحويل مصفوفات PHP إلى JSON. يعامل json_encode المصفوفة الترابطية ككائن والمصفوفة المفهرسة كمصفوفة. وإذا خلطت بينهما (['key' => 'val', 0 => 'x'])، فستحصل على كائن عند الإخراج. أبقِ المصفوفات ذات الشكل الشبيه بـ JSON على هذا الشكل.
  • علامات الاقتباس المزدوجة مع الفواصل العليا. تتطلب سلاسل PHP ذات الاقتباس المفرد تهريب \'؛ وتتطلب السلاسل ذات الاقتباس المزدوج تهريب \\"، وقد تُستوفى المتغيرات عن غير قصد إن لم تنتبه. استخدم الاقتباس المفرد للبيانات.
  • نسيان الفواصل الأخيرة. يسمح بها PHP منذ الإصدار 7.3 وتجعل الفروقات (diff) أوضح. يضيفها المولّد افتراضياً.

الأسئلة الشائعة

الصيغة المختصرة ([...]) متاحة منذ PHP 5.4 وهي الخيار المتعارف عليه لكل الكود الحديث. أما الصيغة الطويلة (array(...)) فتلزم فقط للكود الذي يجب أن يعمل على PHP 5.3 أو أقدم، أي الأنظمة القديمة أساساً.

نعم. ملفات إعداد Laravel هي مصفوفات PHP عادية تُعاد من ملف. الصق ناتج المولّد بعد return واحفظه في config/.

لا تستوفي سلاسل PHP ذات الاقتباس المفرد المتغيرات ولا تسلسلات التهريب (باستثناء \' و\\). وهذا أسرع وأكثر أماناً لقيم البيانات النصية. أما الاقتباس المزدوج فمهم فقط عندما تريد \n أو \t أو $variable داخل السلسلة.

لا، إنها تُخرج مصفوفة نصية. غلّفها بنفسك بـ return أو const أو خاصية صنف حسب الحاجة. إبقاء الناتج صغيراً يجعله سهل التركيب.

أدوات ذات صلة

مولّد إعدادات Webpack

أنشئ ملف webpack.config.js لـ webpack 5 من نموذج قصير: حدّد entry ومجلد الإخراج والوضع (mode)، ثم فعّل TypeScript وBabel ومحمّل CSS وHtmlWebpackPlugin وخادم تطوير.

مرجع جدول ASCII

جدول ASCII كامل من 0 إلى 127 مع التمثيل العشري والست عشري والثماني والثنائي والمرجع الرقمي في HTML لكل محرف، بما في ذلك أكواد التحكم مثل NUL وLF وDEL.

مولّد ملف .gitignore

اجمع قواعد استبعاد المشروع لـ Laravel وNode.js وPython وRails. انسخ الناتج أو نزّل ملف ZIP يحتوي على .gitignore، مع إبقاء القواعد الشخصية منفصلة.

مولد ملف tsconfig.json

أنشئ ملف tsconfig.json نظيفا باختيار target وmodule وmoduleResolution وJSX وأعلام الصرامة الشائعة، ثم انسخ الإعداد المولّد إلى مشروعك.

مولّد Dockerfile

أنشئ ملف Dockerfile وملف .dockerignore مطابقًا له لخمس بيئات تطبيقات. أدخل مدخل التشغيل الفعلي ودليل العمل والمنفذ الداخلي، ثم راجع الملفين.

مولد تراخيص

قم بإنشاء النص الكامل لترخيصات المصدر المفتوح مع إدخال اسمك والسنة المقابلة، ويشمل ذلك تراخيص MIT وApache 2.0 وGPLv3 وBSD-3 وMPL-2.0 وCC.

الأداة متاحة بلغات أخرى