الفرق بين المراجعتين لصفحة: «PHP/sscanf»
أضفت المحتوى |
لا ملخص تعديل |
||
(1 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE:الدالة <code>sscanf()</code> في PHP}}</noinclude> | |||
(PHP 4 >= 4.0.1, PHP 5, PHP 7) | (PHP 4 >= 4.0.1, PHP 5, PHP 7) | ||
تُحوّل الدالة sscanf() المُدْخَلَ من سلسلة نصية إلى الصيغة المطلوبة. | تُحوّل الدالة <code>sscanf()</code> المُدْخَلَ من سلسلة نصية إلى الصيغة المطلوبة. | ||
== الوصف == | == الوصف == | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
mixed sscanf ( string $str , string $format [, mixed &$... ] ) | mixed sscanf ( string $str , string $format [, mixed &$... ] ) | ||
</syntaxhighlight>وظيفة الدالة sscanf() هي نظير الإدخال في الدالة printf(). تقرأ الدالة sscanf() السلسلة النصية من المعامل str وتفسرها وفقًا للتنسيق المحدد للمعامل | </syntaxhighlight>وظيفة الدالة <code>sscanf()</code> هي نظير الإدخال في الدالة <code>[[PHP/printf|printf()]]</code>. تقرأ الدالة <code>sscanf()</code> السلسلة النصية من المعامل <code>str</code> وتفسرها وفقًا للتنسيق المحدد للمعامل <code>format</code>، الموضح في توثيق الدالة <code>[[PHP/sprintf|sprintf()]]</code>. | ||
أي مسافات بيضاء (white space) في سلسلة التنسيق يمكن أن تتطابق مع أي مسافة بيضاء في السلسلة المدخَلة، فهذا يعني أنه حتى مسافة الجدولة \t في سلسلة التنسيق يمكن أن تتطابق مع محرف مسافة واحدة في السلسلة المدخَلة. | أي مسافات بيضاء (white space) في سلسلة التنسيق يمكن أن تتطابق مع أي مسافة بيضاء في السلسلة المدخَلة، فهذا يعني أنه حتى مسافة الجدولة <code>\t</code> في سلسلة التنسيق يمكن أن تتطابق مع محرف مسافة واحدة في السلسلة المدخَلة. | ||
== المعاملات == | == المعاملات == | ||
=== str === | === <code>str</code> === | ||
السلسلة النصية المدخلة التي ستُفسَّر. | السلسلة النصية المدخلة التي ستُفسَّر. | ||
=== format === | === <code>format</code> === | ||
التنسيق المفسر للمعامل str والموضح في توثيق الدالة sprintf() مع الاختلافات التالية: | التنسيق المفسر للمعامل <code>str</code> والموضح في توثيق الدالة <code>[[PHP/sprintf|sprintf()]]</code> مع الاختلافات التالية: | ||
* هذه الدالة لا تأخذ المحليّة (locale) الحالية بالحسبان. | * هذه الدالة لا تأخذ المحليّة (locale) الحالية بالحسبان. | ||
* هذه الأحرف غير مُدْعَمة F و g و G و b. | * هذه الأحرف غير مُدْعَمة <code>F</code> و <code>g</code> و <code>G</code> و <code>b</code>. | ||
* يشير الحرف D إلى العدد العشري. | * يشير الحرف <code>D</code> إلى [[PHP/float|العدد العشري]]. | ||
* يرمز الحرف i إلى العدد الصحيح integer مع التعرّف التلقائي على أساس العدد. | * يرمز الحرف <code>i</code> إلى [[PHP/integer|العدد الصحيح]] (integer) مع التعرّف التلقائي على أساس العدد. | ||
* n تعني عدد الأحرف التي عولجت حتى الآن. | * <code>n</code> تعني عدد الأحرف التي عولجت حتى الآن. | ||
* s توقف القراءة عند أي مسافة بيضاء. | * <code>s</code> توقف القراءة عند أي مسافة بيضاء. | ||
<code>...</code> | |||
يمكنك اختياريًا تمرير المتغيرات بالمرجعية (by reference) التي ستحتوي على القيم التي ستُفسَّر. | |||
يمكنك اختياريًا تمرير المتغيرات بالمرجعية (reference) التي ستحتوي على القيم التي ستُفسَّر. | |||
== القيم المعادة == | == القيم المعادة == | ||
إذا مُرِّرَ معاملين فقط إلى هذه الدالة، فستُعاد القيم المُفسَّرة كمصفوفة. بخلاف ذلك، إذا مُرِّرتْ المعاملات الاختيارية، فستعيد الدالة عددَ القيم المخرجة. يجب تمرير المعاملات الاختيارية بالمرجعية (reference). | إذا مُرِّرَ معاملين فقط إلى هذه الدالة، فستُعاد القيم المُفسَّرة كمصفوفة. بخلاف ذلك، إذا مُرِّرتْ المعاملات الاختيارية، فستعيد الدالة عددَ القيم المخرجة. يجب تمرير المعاملات الاختيارية بالمرجعية (reference). | ||
إذا كانت السلاسل النصية الفرعية المتوقعة أكثر من تلك المتاحة داخل المعامل | إذا كانت السلاسل النصية الفرعية المتوقعة أكثر من تلك المتاحة داخل المعامل <code>str</code>، فستُعاد القيمة <code>-1</code>. | ||
== أمثلة == | == أمثلة == | ||
المثال 1: مثال على الدالة sscanf()<syntaxhighlight lang="php"> | المثال 1: مثال على الدالة <code>sscanf()</code><syntaxhighlight lang="php"> | ||
<?php | <?php | ||
// الحصول على الرقم التسلسلي | // الحصول على الرقم التسلسلي | ||
list($serial) = sscanf("SN/2350001", "SN/%d"); | list($serial) = sscanf("SN/2350001", "SN/%d"); | ||
// وتاريخ التصنيع | // وتاريخ التصنيع | ||
$mandate = "January 01 2000"; | $mandate = "January 01 2000"; | ||
list($month, $day, $year) = sscanf($mandate, "%s %d %d"); | list($month, $day, $year) = sscanf($mandate, "%s %d %d"); | ||
echo "Item $serial was manufactured on: $year-" . substr($month, 0, 3) . "-$day\n"; | echo "Item $serial was manufactured on: $year-" . substr($month, 0, 3) . "-$day\n"; | ||
?> | ?> | ||
</syntaxhighlight>إذا مُرِّرت معاملات اختيارية ، فستعيد الدالة عدد القيم التي جرى إسنادها إلى متغيرات. | </syntaxhighlight>إذا مُرِّرت معاملات اختيارية ، فستعيد الدالة عدد القيم التي جرى إسنادها إلى متغيرات. | ||
المثال 2: مثال على الدالة sscanf() باستخدام المعاملات الاختيارية<syntaxhighlight lang="php"> | المثال 2: مثال على الدالة <code>sscanf()</code> باستخدام المعاملات الاختيارية<syntaxhighlight lang="php"> | ||
<?php | <?php | ||
// الحصول على معلومات المؤلف وتوليد مدخلة DocBook | // الحصول على معلومات المؤلف وتوليد مدخلة DocBook | ||
$auth = "24\tLewis Carroll"; | $auth = "24\tLewis Carroll"; | ||
$n = sscanf($auth, "%d\t%s %s", $id, $first, $last); | $n = sscanf($auth, "%d\t%s %s", $id, $first, $last); | ||
echo "<author id='$id'> | echo "<author id='$id'> | ||
<firstname>$first</firstname> | <firstname>$first</firstname> | ||
<surname>$last</surname> | <surname>$last</surname> | ||
</author>\n"; | </author>\n"; | ||
?> | ?> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== انظر أيضًا == | == انظر أيضًا == | ||
* الدالة fscanf(): تحويل المُدْخَلَ من ملف حسب الصيغة المطلوبة. | * الدالة <code>[[PHP/fscanf|fscanf()]]</code>: تحويل المُدْخَلَ من ملف حسب الصيغة المطلوبة. | ||
* الدالةُ printf(): إنتاج سلسلة نصيّة مُنسَّقة. | * الدالةُ <code>[[PHP/printf|printf()]]</code>: إنتاج سلسلة نصيّة مُنسَّقة. | ||
* الدالةُ sprintf(): إعادة سلسلة نصيّة مُنسَّقة. | * الدالةُ <code>[[PHP/sprintf|sprintf()]]</code>: إعادة سلسلة نصيّة مُنسَّقة. | ||
== مصادر == | == مصادر == | ||
* [http://php.net/manual/en/function.sscanf.php صفحة الدالة sscanf في توثيق PHP الرسمي .] | * [http://php.net/manual/en/function.sscanf.php صفحة الدالة sscanf في توثيق PHP الرسمي .] | ||
[[تصنيف:PHP]] | |||
[[تصنيف:PHP Function]] | |||
[[تصنيف:PHP String]] |
المراجعة الحالية بتاريخ 12:31، 9 أبريل 2018
(PHP 4 >= 4.0.1, PHP 5, PHP 7)
تُحوّل الدالة sscanf()
المُدْخَلَ من سلسلة نصية إلى الصيغة المطلوبة.
الوصف
mixed sscanf ( string $str , string $format [, mixed &$... ] )
وظيفة الدالة sscanf()
هي نظير الإدخال في الدالة printf()
. تقرأ الدالة sscanf()
السلسلة النصية من المعامل str
وتفسرها وفقًا للتنسيق المحدد للمعامل format
، الموضح في توثيق الدالة sprintf()
.
أي مسافات بيضاء (white space) في سلسلة التنسيق يمكن أن تتطابق مع أي مسافة بيضاء في السلسلة المدخَلة، فهذا يعني أنه حتى مسافة الجدولة \t
في سلسلة التنسيق يمكن أن تتطابق مع محرف مسافة واحدة في السلسلة المدخَلة.
المعاملات
str
السلسلة النصية المدخلة التي ستُفسَّر.
format
التنسيق المفسر للمعامل str
والموضح في توثيق الدالة sprintf()
مع الاختلافات التالية:
- هذه الدالة لا تأخذ المحليّة (locale) الحالية بالحسبان.
- هذه الأحرف غير مُدْعَمة
F
وg
وG
وb
. - يشير الحرف
D
إلى العدد العشري. - يرمز الحرف
i
إلى العدد الصحيح (integer) مع التعرّف التلقائي على أساس العدد. n
تعني عدد الأحرف التي عولجت حتى الآن.s
توقف القراءة عند أي مسافة بيضاء.
...
يمكنك اختياريًا تمرير المتغيرات بالمرجعية (by reference) التي ستحتوي على القيم التي ستُفسَّر.
القيم المعادة
إذا مُرِّرَ معاملين فقط إلى هذه الدالة، فستُعاد القيم المُفسَّرة كمصفوفة. بخلاف ذلك، إذا مُرِّرتْ المعاملات الاختيارية، فستعيد الدالة عددَ القيم المخرجة. يجب تمرير المعاملات الاختيارية بالمرجعية (reference).
إذا كانت السلاسل النصية الفرعية المتوقعة أكثر من تلك المتاحة داخل المعامل str
، فستُعاد القيمة -1
.
أمثلة
المثال 1: مثال على الدالة sscanf()
<?php
// الحصول على الرقم التسلسلي
list($serial) = sscanf("SN/2350001", "SN/%d");
// وتاريخ التصنيع
$mandate = "January 01 2000";
list($month, $day, $year) = sscanf($mandate, "%s %d %d");
echo "Item $serial was manufactured on: $year-" . substr($month, 0, 3) . "-$day\n";
?>
إذا مُرِّرت معاملات اختيارية ، فستعيد الدالة عدد القيم التي جرى إسنادها إلى متغيرات.
المثال 2: مثال على الدالة sscanf()
باستخدام المعاملات الاختيارية
<?php
// الحصول على معلومات المؤلف وتوليد مدخلة DocBook
$auth = "24\tLewis Carroll";
$n = sscanf($auth, "%d\t%s %s", $id, $first, $last);
echo "<author id='$id'>
<firstname>$first</firstname>
<surname>$last</surname>
</author>\n";
?>
انظر أيضًا
- الدالة
fscanf()
: تحويل المُدْخَلَ من ملف حسب الصيغة المطلوبة. - الدالةُ
printf()
: إنتاج سلسلة نصيّة مُنسَّقة. - الدالةُ
sprintf()
: إعادة سلسلة نصيّة مُنسَّقة.