كيفية عرض JSON بشكل جميل في PHP: دليل كامل للمبتدئين

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

مقدمة: لماذا JSON "القذر" هو عدو أي مطور

\n\n

تخيل: أنت تكتب API بلغة PHP، وتعيد البيانات بتنسيق JSON، وتفتح النتيجة في المتصفح أو وحدة التحكم - وترى سطرًا واحدًا متصلاً بدون أي مسافة:

\n\n
{"users":[{"id":1,"name":"إيفان","email":"ivan@example.com"},{"id":2,"name":"ماريا","email":"maria@example.com"}]}
\n\n

العيون تتشتت، من المستحيل العثور على الحقل المطلوب، وإذا كان JSON يحتوي على خطأ - فستبحث عنه لساعات. هل هذا الموقف مألوف؟ لهذا السبب حصد سؤال "طباعة JSON بشكل جميل مع PHP" على Stack Overflow آلاف المشاهدات. اليوم سنتعرف مرة وإلى الأبد على كيفية جعل JSON قابلاً للقراءة ومنظمًا وجميلاً باستخدام PHP.

\n\n

في هذه المقالة ستتعلم:

\n
    \n
  • ما هي الطباعة الجميلة ولماذا هي ضرورية
  • \n
  • كيفية استخدام الدالة المدمجة json_encode مع العلامات
  • \n
  • كيفية تنسيق JSON لتصحيح الأخطاء والسجلات والعرض في المتصفح
  • \n
  • تقنيات إضافية: التنسيق التكراري، العمل مع Unicode والضغط
  • \n
\n\n

هيا بنا!

\n\n

ما هي طباعة JSON بشكل جميل؟

\n\n

الطباعة الجميلة (من الإنجليزية "pretty-printing") هي تنسيق البيانات باستخدام المسافات البادئة وفواصل الأسطر والمحاذاة، بحيث يتمكن الشخص من قراءة البنية بسهولة. في حالة JSON، يحول هذا "الفوضى" إلى تسلسل هرمي أنيق:

\n\n
{\n    "users": [\n        {\n            "id": 1,\n            "name": "إيفان",\n            "email": "ivan@example.com"\n        },\n        {\n            "id": 2,\n            "name": "ماريا",\n            "email": "maria@example.com"\n        }\n    ]\n}
\n\n

أوافق، العمل بهذا الشكل أكثر متعة! توفر PHP لهذا الغرض أدوات مدمجة لا تتطلب تثبيت مكتبات إضافية.

\n\n

الطريقة الأساسية: json_encode مع العلامة JSON_PRETTY_PRINT

\n\n

الطريقة الأبسط والأكثر شيوعًا هي استخدام المعامل الثاني للدالة json_encode()، مع تمرير الثابت JSON_PRETTY_PRINT. إليك مثال أساسي:

\n\n
<?php\n$data = [\n    'name' => 'PythonLib',\n    'type' => 'educational',\n    'topics' => ['PHP', 'Python', 'JavaScript'],\n    'stats' => [\n        'visitors' => 15000,\n        'rating' => 4.8\n    ]\n];\n\n$prettyJson = json_encode($data, JSON_PRETTY_PRINT);\necho $prettyJson;\n?>
\n\n

النتيجة:

\n\n
{\n    "name": "PythonLib",\n    "type": "educational",\n    "topics": [\n        "PHP",\n        "Python",\n        "JavaScript"\n    ],\n    "stats": {\n        "visitors": 15000,\n        "rating": 4.8\n    }\n}
\n\n

لاحظ: يتم ترتيب المفاتيح أبجديًا. إذا كنت بحاجة إلى الحفاظ على الترتيب الأصلي - استخدم العلامة JSON_PRESERVE_ZERO_FRACTION (للأعداد العشرية) أو قم بترتيب المصفوفة يدويًا.

\n\n

دمج العلامات

\n\n

يمكنك تمرير عدة علامات باستخدام | (أحادي المعامل OR). على سبيل المثال، للتنسيق وهروب رموز Unicode في نفس الوقت:

\n\n
$json = json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);\necho $json;
\n\n

العلامة JSON_UNESCAPED_UNICODE تحافظ على الأحرف السيريلية والأحرف الأخرى بشكل قابل للقراءة، بدلاً من عرضها كـ \\u0438\\u0432\\u0430\\u043d. هذا مفيد بشكل خاص للمواقع الناطقة بالروسية.

\n\n

كيفية عرض JSON المطبوع بشكل جميل في المتصفح

\n\n

إذا كنت تطور API وتريد أن يظهر JSON بشكل جميل مباشرة في المتصفح (على سبيل المثال، أثناء تصحيح الأخطاء)، استخدم الرأس Content-Type: application/json مع التنسيق:

\n\n
<?php\nheader('Content-Type: application/json; charset=utf-8');\n\n$response = [\n    'status' => 'success',\n    'data' => [\n        'message' => 'مرحبًا بالعالم!',\n        'code' => 200\n    ]\n];\n\necho                

المدونات

توصيات الكتب