الفرق بين المراجعتين لصفحة: «PHP/json decode»
Kinan-mawed (نقاش | مساهمات) |
Kinan-mawed (نقاش | مساهمات) |
||
سطر 28: | سطر 28: | ||
== القيم المعادة == | == القيم المعادة == | ||
تُعيد هذه الدّالّة القيمة المُرمَّزة في المُعامِل json إلى نوع مناسب في لغة PHP، تُعاد القيم true و false و null على شكل <code>TRUE</code> و <code>FALSE</code> و <code>NULL</code> على التوالي وبالتّرتيب. تُعاد القيمة <code>NULL</code> في حال تعذّر فك ترميز سلسلة json أو كانت البيانات المُرمَّزة أعمق من حدّ المُعاوَدة. | تُعيد هذه الدّالّة القيمة المُرمَّزة في المُعامِل json إلى نوع مناسب في لغة PHP، تُعاد القيم true و false و null على شكل <code>TRUE</code> و <code>FALSE</code> و <code>NULL</code> على التوالي وبالتّرتيب. تُعاد القيمة <code>NULL</code> في حال تعذّر فك ترميز سلسلة json أو كانت البيانات المُرمَّزة أعمق من حدّ المُعاوَدة. | ||
== أمثلة == | |||
'''المثال 1:''' أمثلة على استخدام الدالة <code>json_decode()</code> | |||
<syntaxhighlight lang="php"> | |||
<?php | |||
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; | |||
var_dump(json_decode($json)); | |||
var_dump(json_decode($json, true)); | |||
?> | |||
</syntaxhighlight> | |||
ينتج عن المثال السّابق ما يلي: | |||
<syntaxhighlight> | |||
object(stdClass)#1 (5) { | |||
["a"] => int(1) | |||
["b"] => int(2) | |||
["c"] => int(3) | |||
["d"] => int(4) | |||
["e"] => int(5) | |||
} | |||
array(5) { | |||
["a"] => int(1) | |||
["b"] => int(2) | |||
["c"] => int(3) | |||
["d"] => int(4) | |||
["e"] => int(5) | |||
} | |||
</syntaxhighlight> |
مراجعة 20:22، 9 أبريل 2018
(PHP 5 >= 5.2.0, PHP 7, PECL json >= 1.2.0)
تفك الدالة json_decode()
ترميز سلسلة نصية بصيغة JSON.
الوصف
mixed json_decode ( string $json [, bool $assoc = FALSE [, int $depth = 512 [, int $options = 0]]] )
تأخذ سلسلة مُرمَّزة بصيغة JSON وتحوِّلها إلى مُتغيِّر PHP.
المعاملات
json
سلسلة json التي سيُفكُّ ترميزها.
تعمل هذه الدّالّة مع سلاسل نصّيّة مُرمَّزة بترميز UTF-8 فقط.
ملاحظة: تعتمد PHP مجموعة عُليا من JSON كما هو مُحدَّد في المعيار الأصلي RFC 7159.
assoc
عندما تكون قيمته صحيحة TRUE
، فستُحوَّل الكائنات المُعادة من الدّالّة إلى مصفوفات ترابطية (associative arrays).
depth
عُمق المُعاوَدة (recursion) المُحدَّد من قبل المستخدم.
options
خيارات لفك ترميز JSON على شكل قناع بت Bitmask. هناك حاليًّا خياران مدعومان، الأوّل هو JSON_BIGINT_AS_STRING
والذي يسمح بقلب الأعداد الصّحيحة الكبيرة إلى سلاسل نصّيّة بدلًا من أعداد ذات فاصلة عائمة float، وهو الخيار الافتراضي، الخيار الثّاني هو JSON_OBJECT_AS_ARRAY
وله نفس تأثير تعيين قيمة المُعامِل assoc
إلى TRUE
.
القيم المعادة
تُعيد هذه الدّالّة القيمة المُرمَّزة في المُعامِل json إلى نوع مناسب في لغة PHP، تُعاد القيم true و false و null على شكل TRUE
و FALSE
و NULL
على التوالي وبالتّرتيب. تُعاد القيمة NULL
في حال تعذّر فك ترميز سلسلة json أو كانت البيانات المُرمَّزة أعمق من حدّ المُعاوَدة.
أمثلة
المثال 1: أمثلة على استخدام الدالة json_decode()
<?php
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode($json));
var_dump(json_decode($json, true));
?>
ينتج عن المثال السّابق ما يلي:
object(stdClass)#1 (5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
}
array(5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
}