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

من موسوعة حسوب
< PHP
اذهب إلى التنقل اذهب إلى البحث
(أضفت المحتوى)
 
سطر 1: سطر 1:
 
+
<noinclude>{{DISPLAYTITLE:الدالة <code>sscanf()</code>‎ في PHP}}</noinclude>
= الدالة sscanf()‎ في PHP =
 
 
(PHP 4 >= 4.0.1, PHP 5, PHP 7)
 
(PHP 4 >= 4.0.1, PHP 5, PHP 7)
  
سطر 37: سطر 36:
 
المثال 1: مثال على الدالة sscanf()‎<syntaxhighlight lang="php">
 
المثال 1: مثال على الدالة sscanf()‎<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>إذا مُرِّرت معاملات اختيارية ، فستعيد الدالة عدد القيم التي جرى إسنادها إلى متغيرات.
سطر 55: سطر 47:
 
المثال 2: مثال على الدالة sscanf()‎ باستخدام المعاملات الاختيارية<syntaxhighlight lang="php">
 
المثال 2: مثال على الدالة sscanf()‎ باستخدام المعاملات الاختيارية<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>
سطر 80: سطر 64:
 
== مصادر ==
 
== مصادر ==
 
* [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]]

مراجعة 11:59، 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 توقف القراءة عند أي مسافة بيضاء.

...

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

مصادر