الفرق بين المراجعتين ل"PHP/sscanf"

من موسوعة حسوب
< PHP
اذهب إلى التنقل اذهب إلى البحث
 
سطر 2: سطر 2:
 
(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 وتفسرها وفقًا للتنسيق المحدد للمعامل format، الموضح في توثيق الدالة sprintf()‎.
+
</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).
  
إذا كانت السلاسل النصية الفرعية المتوقعة أكثر من تلك المتاحة داخل المعامل str، فستُعاد القيمة ‎-1.
+
إذا كانت السلاسل النصية الفرعية المتوقعة أكثر من تلك المتاحة داخل المعامل <code>str</code>، فستُعاد القيمة <code>‎-1</code>.
  
 
== أمثلة ==
 
== أمثلة ==
المثال 1: مثال على الدالة sscanf()‎<syntaxhighlight lang="php">
+
المثال 1: مثال على الدالة <code>sscanf()‎</code><syntaxhighlight lang="php">
 
<?php
 
<?php
 
// الحصول على الرقم التسلسلي
 
// الحصول على الرقم التسلسلي
سطر 45: سطر 45:
 
</syntaxhighlight>إذا مُرِّرت معاملات اختيارية ، فستعيد الدالة عدد القيم التي جرى إسنادها إلى متغيرات.
 
</syntaxhighlight>إذا مُرِّرت معاملات اختيارية ، فستعيد الدالة عدد القيم التي جرى إسنادها إلى متغيرات.
  
المثال 2: مثال على الدالة sscanf()‎ باستخدام المعاملات الاختيارية<syntaxhighlight lang="php">
+
المثال 2: مثال على الدالة <code>sscanf()‎</code> باستخدام المعاملات الاختيارية<syntaxhighlight lang="php">
 
<?php
 
<?php
 
//  الحصول على معلومات المؤلف وتوليد مدخلة DocBook
 
//  الحصول على معلومات المؤلف وتوليد مدخلة DocBook
سطر 58: سطر 58:
  
 
== انظر أيضًا ==
 
== انظر أيضًا ==
* الدالة fscanf()‎: تحويل المُدْخَلَ من ملف حسب الصيغة المطلوبة.
+
* الدالة <code>[[PHP/fscanf|fscanf()‎]]</code>: تحويل المُدْخَلَ من ملف حسب الصيغة المطلوبة.
* الدالةُ printf()‎: إنتاج سلسلة نصيّة مُنسَّقة.
+
* الدالةُ <code>[[PHP/printf|printf()‎]]</code>: إنتاج سلسلة نصيّة مُنسَّقة.
* الدالةُ sprintf()‎: إعادة سلسلة نصيّة مُنسَّقة.
+
* الدالةُ <code>[[PHP/sprintf|sprintf()‎]]</code>: إعادة سلسلة نصيّة مُنسَّقة.
  
 
== مصادر ==
 
== مصادر ==

المراجعة الحالية بتاريخ 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()‎: إعادة سلسلة نصيّة مُنسَّقة.

مصادر