الكورس

Advertisements

JSON | PHP


JSON PHP

 

بعض المعلومات النظرية:-

  1. الاستخدام الشائع لـ JSON هو قراءة البيانات من خادم ويب Web server ، وعرض هذه البيانات في صفحة الويب.
  2. تعلمك لهذا الفصل سيساعدك على فهم كيفية تبادل البيانات فى JSON بين المتصفح ( العميل ) وخادم PHP.
  3. يحتوي ملف PHP على بعض الوظائف المدمجة للتعامل مع JSON.
  4. يمكنك تحويل الكائنات الموجودة في PHP إلى JSON باستخدام دالة  () json_encode الموجودة فى PHP.

 


 

هناك دالتين functions للتعامل مع JSON عن طريق PHP وهما () Json_encode () – json_decode ، سنبدأ بالتعرف عليهما بالتفصيل الأن.

 

 

json_encode() -1

 

تقوم باسترجاع قيم نصية String عند نجاح العملية ، وخطأ False عند فشل العملية.

 

 

البنية الأساسية Syntax، كالتالي:

 

json_encode ( $value, $options = 0, $depth = 512 ) : string

 

القيم المُمررة بداخل function:

Description parameters
– القيمة التي يتم ترميزها.
– تعمل هذه الوظيفة فقط مع البيانات المشفرة تشفير UTF-8.
value “Required
– هذه القيم الاختيارية :
[ SON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT ].
options “Optional
– ضبط الحد الأقصى للعمق.
– يجب أن تكون أكبر من الصفر.
depth “Optional

 

مثال للتوضيح:-

<?php

  $arr = array("One", "two", "three", "four", "five");

  $myJSON = json_encode($arr);

  echo $myJSON;
  
?>

 

 

2. () JSON_decode

 

  • تستخدم وظيفة () json_decode  لفك تشفير JSON في PHP.
  • يأخذ قيم (string) الخاصة ب JSON المشفرة ويحولها الى متغير PHP.
  • هذه الدالة تقوم بإرجاع القيمة التي تم فك تشفيرها من json إلى نوع PHP المناسب.

 

البنية الأساسية Syntax، كالتالي:

 

json_decode ( $json (string) , $assoc (Bool) = False, $depth (int) = 512, $options (int) = 0 ) : mixed

 

القيم المُمررة بداخل function:

Descriptionparameters
– انها قيم نصية String مشفرة.
– يجب أن تكون البيانات مشفرة تشفير( UTF-8 ).
json “Required
القيمة الإفتراضية False ،
عندما تكون True ، سيتم تحويل الكائنات التي تم إرجاعها إلى مصفوفات مُترابطة.
( “assoc ( associative – “Optional
وهو معلمة نوع عدد صحيح Integer الذي يحدد عمق recursion depth.depth “Optional
نوع حرف صحيح لفك شفرة JSOS JSON_BIGINT_AS_STRING مدعوم.options “Optional

 

مثال للتوضيح:-

<?php

  $myJSONArr = '["Java", "Python", "PHP", "Html"]';
  $myPHPArr = json_decode($myJSONArr);

  var_dump($myPHPArr);
  
?>

 

💡 JSON Array 

 

يمكنك أيضا تحويل المصفوفات Arrays الموجودة في PHP إلى JSON عند باستخدام دالة () json_encode كالتالى:-

<?php

  $arr = array("One", "two", "three", "four", "five");

  $myJSON = json_encode($arr);

  echo $myJSON;
  
?>

 

مثال: استخدم () JSON.parse  لتحويل JSON إلى كائن JavaScript:

  xmlhttp = new XMLHttpRequest();
  xmlhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
    obj = JSON.parse(this.responseText);
      for (y in obj) {
        outputTxt += obj[y].name + "<br>";
      }
      document.getElementById("demo").innerHTML = outputTxt;
    }
  };

 

💡 PHP Database

 

– PHP هي لغة برمجة جانب الخادم ، يمكنك استخدامها للوصول إلى قاعدة البيانات.

تخيل أن لديك قاعدة بيانات على الخادم الخاص بك ، وتريد إرسال طلب إليها من المستخدم حيث تطلب الصفوف العشرين الأخيرة في جدول يسمى ( users ).

فيجب عليك عمل كائن JSON يصف اسم الجدول ، وأرقام الصفوف التي تريد إرجاعها.

قبل إرسال الطلب إلى الخادم ، قم بتحويل كائن JSON إلى سلسلة  string وإرساله كمعلمة parameter إلى عنوان url الخاص بصفحة PHP.


مثال: استخدم () JSON.stringify  لتحويل كائن JavaScript إلى JSON:

myObj = { "table":"users", "limit":15 };
dbParam = JSON.stringify(myObj);

xmlHttp = new XMLHttpRequest();
xmlHttp.onreadystatechange = function() {
  if (this.readyState == 4 && this.status == 200) {
    document.getElementById("demo").innerHTML = this.responseText;
  }
};
xmlHttp.open("GET", "json_db.php?y=" + dbParam, true);
xmlHttp.send();

 

شرح المثال:
  • تحديد كائن يحتوي على خاصية الجدول وخاصية الحد limit.
  • تحويل الكائن إلى سلسلة JSON.
  • إرسال طلب إلى ملف PHP ، مع سلسلة JSON كمعلمة.
  • انتظر حتى يعود الطلب مع النتيجة (مثل JSON)
  • عرض النتيجة المستلمة من ملف PHP.


وهذا ملف PHP:

<?php
  header("Content-Type: application/json; charset=UTF-8");
  $myObj = json_decode($_POST["y"], false);

  $con = new PDO("myServer", "myUsername", "myPass", "options");
  $stmt = $con->prepare("SELECT name FROM ? LIMIT ?"); // ( "Your Field", $myObj->tableName, $myObj->yourlimit )
  $stmt->execute();
  $output = $stmt->fetchAll();

  echo json_encode($output);
?>

 

💡 [ PHP Method [ POST

 

  • عند إرسال البيانات إلى الخادم ، غالبًا ما يكون من الأفضل استخدام طريقة HTTP POST.
  • لإرسال طلبات AJAX باستخدام طريقة POST ، حدد (method & header ) الصحيح.

 

يجب أن تكون البيانات المرسلة إلى الخادم الآن وسيطة لأسلوب () send :

obj = { "table":"users", "limit":15 };
dbParam = JSON.stringify(obj);

xmlHttp = new XMLHttpRequest();
xmlHttp.onreadystatechange = function() {
  if (this.readyState == 4 && this.status == 200) {
    myObj = JSON.parse(this.responseText);
    for (y in myObj) {
      outputTxt += myObj[y].name + "<br>";
    }
    document.getElementById("demo").innerHTML = outputTxt;
  }
};


xmlHttp.open("POST", "json_db_post.php", true);
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlHttp.send("y=" + dbParam);

 

الفرق الوحيد في ملف PHP هو طريقة الحصول على البيانات المنقولة.

 

ملف PHP:-

<?php
  header("Content-Type: application/json; charset=UTF-8");
  $myObj = json_decode($_POST["y"], false);
  $con = new PDO("myServer", "myUsername", "myPass", "options");
  $stmt = $con->prepare("SELECT name FROM ? LIMIT ?"); // ( "Your Field", $myObj->tableName, $myObj->yourlimit )
  $stmt->execute();
  $output = $stmt->fetchAll();

  echo json_encode($output);
?>

 

 

Quote This Lesson:-

“ Computers are good at following instructions, but not at reading your mind. ”

– Donald Knuth

 

لا تنسي متابعتنا على مواقع التواصل الإجتماعى.



الإبلاغ عن خطأ

×

إذا وجد خطأ وتريد الإبلاغ عن هذا الخطأ، أو إذا كنت تريد تقديم اقتراح على شىء معين، فلا تتردد في إرسال بريد إلكتروني إلينا:

[email protected]

شكرًا لك على مساعدتك لنا!

Advertisements