الفرق بين المراجعتين لصفحة: «PHP/parse str»

من موسوعة حسوب
< PHP
أضفت المحتوى
 
لا ملخص تعديل
 
(مراجعتان متوسطتان بواسطة مستخدمين اثنين آخرين غير معروضتين)
سطر 1: سطر 1:
== الدالة parse_str()‎ في PHP ==
<noinclude>{{DISPLAYTITLE:الدالة <code>parse_str()</code>‎ في PHP}}</noinclude>
(PHP 4, PHP 5, PHP 7)
(PHP 4, PHP 5, PHP 7)


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


=== الوصف ===
== الوصف ==
<syntaxhighlight lang="php">
<syntaxhighlight lang="php">
void parse_str ( string $encoded_string [, array &$result ] )
void parse_str ( string $encoded_string [, array &$result ] )
</syntaxhighlight>تُحَوِّلُ الدالة parse_str()‎ المعامل ‎$encoded_string كما لو أنه سلسلة الاستعلام النصية (query string) التي مُرِّرَتْ عبر عنوان URL وتَضَعُ المتغيرات في المجال الحالي (current scope) (أو في مصفوفة إذا وُجِدَ المعامل result).
</syntaxhighlight>تُحَوِّلُ الدالة <code>parse_str()‎</code> المعامل ‎<code>$encoded_string</code> كما لو أنه سلسلة الاستعلام النصية (query string) التي مُرِّرَتْ عبر عنوان URL وتَضَعُ المتغيرات في المجال الحالي (current scope) (أو في مصفوفة إذا وُجِدَ المعامل <code>result</code>).


=== المعاملات ===
== المعاملات ==


==== encoded_string ====
=== <code>encoded_string</code> ===
السلسلة النصية المدخلة.
السلسلة النصية المدخلة.


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


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


=== القيم المعادة ===
== القيم المعادة ==
لا تعيد الدالة parse_str()‎ قِيمًا.
لا تعيد الدالة <code>parse_str()‎</code> قِيمًا.


=== التغير ===
== سجل التغييرات ==
{| class="wikitable"
{| class="wikitable"
!الإصدار
!الإصدار
سطر 28: سطر 28:
|-
|-
|7.2.0
|7.2.0
|يُصْدِرُ الآن استخدامُ الدالة parse_str()‎  بدون معاملها الثاني إشعارَ E_DEPRECATED.
|يُصْدِرُ الآن استخدامُ الدالة <code>parse_str()‎</code> بدون معاملها الثاني إشعارَ E_DEPRECATED.
|}
|}


=== أمثلة ===
== أمثلة ==
المثال 1: استخدام الدالة parse_str()‎<syntaxhighlight lang="php">
المثال 1: استخدام الدالة <code>parse_str()‎</code><syntaxhighlight lang="php">
<?php
<?php
$str = "first=value&arr[]=foo+bar&arr[]=baz";
$str = "first=value&arr[]=foo+bar&arr[]=baz";
سطر 48: سطر 48:
echo $arr[1]; // baz
echo $arr[1]; // baz
?>
?>
</syntaxhighlight>نظرًا لأن المتغيرات في PHP لا يمكن أن تحتوي على نقاط وفراغات في أسمائها، تُحَوَّلُ تلك النقاط والفراغات إلى شرطات سفلية. ينطبق نفس الشيء على تسمية أسماء المفاتيح المعنية في حالة استخدام الدالة parse_str()‎ مع المعامل result .
</syntaxhighlight>نظرًا لأن المتغيرات في PHP لا يمكن أن تحتوي على نقاط وفراغات في أسمائها، تُحَوَّلُ تلك النقاط والفراغات إلى شرطات سفلية. ينطبق نفس الشيء على تسمية أسماء المفاتيح المعنية في حالة استخدام الدالة <code>parse_str()‎</code> مع المعامل <code>result</code>.


المثال 2: استخدام الدالة parse_str()‎ في تغيير الاسم<syntaxhighlight lang="php">
المثال 2: استخدام الدالة <code>parse_str()‎</code> في تغيير الاسم<syntaxhighlight lang="php">
<?php
<?php
parse_str("My Value=Something");
parse_str("My Value=Something");
سطر 60: سطر 60:
</syntaxhighlight>
</syntaxhighlight>


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


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


=== انظر أيضًا ===
== انظر أيضًا ==
* الدالة parse_url()‎: تحليل روابط URL وإعادة مكوناته.
* الدالة <code>[[PHP/parse url|parse_url()‎]]</code>: تحليل روابط URL وإعادة مكوناته.


* الدالة pathinfo()‎: إعادة معلومات حول مسار ملف.
* الدالة <code>[[PHP/pathinfo|pathinfo()‎]]</code>: إعادة معلومات حول مسار ملف.
* الدالة http_build_quiry()‎: توليد سلسلة نصية مرمَّزة كما في روابط URI للسلسلة النصية المستعلَم عنها (query string).
* الدالة <code>[[PHP/http build quiry|http_build_quiry()‎]]</code>: توليد سلسلة نصية مرمَّزة كما في روابط URI للسلسلة النصية المستعلَم عنها (query string).
* الدالة urldecode()‎: فك ترميز السلاسل النصية التي تحتوي على روابط URI.
* الدالة <code>[[PHP/urldecode|urldecode()‎]]</code>: فك ترميز السلاسل النصية التي تحتوي على روابط URI.


=== مصادر ===
== مصادر ==
* [http://php.net/manual/en/function.parse-str.php صفحة الدالة parse_str في توثيق PHP الرسمي.]
* [http://php.net/manual/en/function.parse-str.php صفحة الدالة parse_str في توثيق PHP الرسمي.]
[[تصنيف:PHP]]
[[تصنيف:PHP Function]]
[[تصنيف:PHP String]]

المراجعة الحالية بتاريخ 11:08، 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.

مصادر