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

من موسوعة حسوب
< PHP
اذهب إلى التنقل اذهب إلى البحث

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

تحلِّل الدالة fscanf()‎ المدخلات من الملف وفقًا لتنسيق محدَّد.

الوصف

mixed fscanf ( resource $handle , string $format [, mixed &$... ] )

تشبه هذه الدالة الدالة sscanf()‎ باستثناء أنَّها تأخذ مدخلاتها من الملف الذي يشير إليه المورد handle ثمَّ تُفسِّر هذه المدخلات وفقًا للتنسيق format المُعطى الذي شُرح بالتفصيل في صفحة الدالة sprintf()‎.

ملاحظة: أيُّ فراغ أبيض (whitespace) موجود في السلسلة النصيَّة format سيتطابق مع أي محرف فراغ أبيض يُعثر عليه في الملف. هذا يعني أنَّه يمكن أن يتطابق حتى محرف مسافة الجدولة ‎\t مع محرف فراغ عادي.

ستقرأ الدالة fscanf()‎ سطرًا واحدًا من الملف في كلِّ مرة تُستدعى فيها.

المعاملات

handle

مؤشِّر (pointer) يشير إلى ملف. يجب أن يكون سليمًا، ويشير إلى ملف فُتح بطريقة صحيحة باستعمال الدالة fopen()‎ أو الدالة fsockopen()‎ ولم يُغلق بعد باستعمال الدالة fclose()‎.

format

التنسيق المحدَّد الذي ستُحلل البيانات بناءً عليه. راجع الدالة sprintf()‎ للاطلاع على الشرح المفصَّل لهذا المعامل.

...

المعاملات الاختياريَّة المُمررة بالمرجعيَّة.

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

إن مُرِّر إلى هذه الدالة معاملين فقط، فستعيد القيم التي حلَّلتها في مصفوفة. أمَّا إن مُرِّر إلى الدالة معاملات اختياريَّة، فستسند هذه الدالة القيم التي حلَّلتها من الملف إلى تلك المعاملات وستعيد عدد هذه القيم؛ أي هو نفسه عدد القيم التي حلَّلتها وأسندتها إلى المعاملات. يجب تمرير المعاملات الاختياريَّة بالمرجعيَّة.

أمثلة

المثال 1: استعمال الدالة fscanf()‎

<?php
$handle = fopen("users.txt", "r");
while ($userinfo = fscanf($handle, "%s\t%s\t%s\n")) {
    list ($name, $profession, $countrycode) = $userinfo;
    //... افعل هنا شيئًا للقيم
}
fclose($handle);
?>

المثال 2: محتوى الملف users.txt

javier  argonaut        pe
hiroshi sculptor        jp
robert  slacker us
luigi   florist it

انظر أيضًا

  • الدالة fgets()‎: تجلب سطرًا واحدًا من ملف.
  • الدالة fgetss()‎: تجلب سطرًا من ملف وتزيل وسوم HTML.
  • الدالة fread()‎: تقرأ من الملف بطريقة آمنة ثنائيًّا.
  • الدالة sscanf()‎: تحلِّل المدخلات من سلسلة نصيَّة وفقًا لتنسيق محدَّد.
  • الدالة printf()‎: طباعة سلسلة نصيَّة بتنسيق محدَّد.
  • الدالة sprintf()‎: تعيد سلسلة نصيَّة منسَّقة.

مصادر