الدالة parse_str()‎ في PHP

من موسوعة حسوب
< PHP
مراجعة 11:04، 9 أبريل 2018 بواسطة عبد اللطيف ايمش (نقاش | مساهمات) (إضافة عنوان الصفحة والتصنيفات)

(PHP 4, PHP 5, PHP 7)

تُحَوِّلُ الدالة parse_str()‎ السلسلة النصية إلى متغيرات.

الوصف

void parse_str ( string $encoded_string [, array &$result ] )

تُحَوِّلُ الدالة parse_str()‎ المعامل ‎$encoded_string كما لو أنه سلسلة الاستعلام النصية (query string) التي مُرِّرَتْ عبر عنوان URL وتَضَعُ المتغيرات في المجال الحالي (current scope) (أو في مصفوفة إذا وُجِدَ المعامل result).

المعاملات

encoded_string

السلسلة النصية المدخلة.

result

إذا كان المعامل الثاني result موجودًا، فستُخَزَّن المتغيرات فيه كمصفوفة عناصر بدلاً من ذلك.

تحذير: يُعدّ استخدام الدالة parse_str()‎ بدون المعامل result غير منصوحٍ به ومهمل بدءًا من الإصدار PHP 7.2.

القيم المعادة

لا تعيد الدالة parse_str()‎ قِيمًا.

التغير

الإصدار الوصف
7.2.0 يُصْدِرُ الآن استخدامُ الدالة parse_str()‎  بدون معاملها الثاني إشعارَ E_DEPRECATED.

أمثلة

المثال 1: استخدام الدالة parse_str()‎

<?php
$str = "first=value&arr[]=foo+bar&arr[]=baz";

// مُوصىً به
parse_str($str, $output);
echo $output['first'];  // value
echo $output['arr'][0]; // foo bar
echo $output['arr'][1]; // baz

// غير مستحسن أبدًا
parse_str($str);
echo $first;  // value
echo $arr[0]; // foo bar
echo $arr[1]; // baz
?>

نظرًا لأن المتغيرات في PHP لا يمكن أن تحتوي على نقاط وفراغات في أسمائها، تُحَوَّلُ تلك النقاط والفراغات إلى شرطات سفلية. ينطبق نفس الشيء على تسمية أسماء المفاتيح المعنية في حالة استخدام الدالة parse_str()‎ مع المعامل result . المثال 2: استخدام الدالة parse_str()‎ في تغيير الاسم

<?php
parse_str("My Value=Something");
echo $My_Value; // Something

parse_str("My Value=Something", $output);
echo $output['My_Value']; // Something
?>

ملاحظات

كل المتغيرات التي أُنْشِئَتْ (أو القيم التي أُعيدَت كمصفوفة في حالة وجود المعامل الثاني) قد طُبِّقتَ عليها الدالة urldecode()‎ للحصول على QUERY_STRING الحالية، يمكنك استخدام المتغير ‎$_SERVER[‘QUERY_STRING’]‎. يمكنك أيضًا أن تقرأ صفحة «المتغيرات من مصادر خارجية».

يؤثر الإعداد magic_quotes_gpc على ناتج الدالة parse_str()‎، إذ تستخدم الدالة parse_str()‎ نفس الآلية التي تستخدمها PHP لملء المصفوفتين ‎$_GET و ‎$_POST وغيرها.

انظر أيضًا

  • الدالة parse_url()‎: تحليل روابط URL وإعادة مكوناته.
  • الدالة pathinfo()‎: إعادة معلومات حول مسار ملف.
  • الدالة http_build_quiry()‎: توليد سلسلة نصية مرمَّزة كما في روابط URI للسلسلة النصية المستعلَم عنها (query string).
  • الدالة urldecode()‎: فك ترميز السلاسل النصية التي تحتوي على روابط URI.

مصادر