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

من موسوعة حسوب
< PHP
مراجعة 08:43، 28 أبريل 2018 بواسطة جميل-بيلوني (نقاش | مساهمات)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

(PHP 4, PHP 5, PHP 7)

تتحقَّق الدالة feof()‎ من الوصول إلى نهاية ملف (EOF) بتمرير المقبض الذي يشير إلى الملف.

الوصف

bool feof ( resource $handle )

تتحقَّق هذه الدالة من الوصول إلى نهاية ملف (EOF) بتمرير المقبض handle الذي يشير إلى الملف.

المعاملات

handle

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

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

تُعاد القيمة TRUE إن وصل مقبض الملف إلى نهايته أو إن حصل خطأ (من ضمنها انتهاء مهلة المقبس [socket timeout]). خلا ذلك، ستُعاد القيمة FALSE.

ملاحظات

تحذير: إن لم يُغلق الخادم الاتصال المفتوح باستعمال الدالة fsockopen()‎، فستتوقف الدالة feof()‎ بصورة طارئة. لتجنب حدوث ذلك، انظر المثال التالي:

المثال 1: معالجة موضوع انتهاء المُهل (timeouts) عند استعمال الدالة feof()‎

<?php
function safe_feof($fp, &$start = NULL) {
 $start = microtime(true);

 return feof($fp);
}

//fsockopen() مفتوح مسبقًا باستعمال الدالة $fp بفرض أنَّ

$start = NULL;
$timeout = ini_get('default_socket_timeout');

while(!safe_feof($fp, $start) && (microtime(true) - $start) < $timeout)
{
 // هنا يُتعامل مع انتهاء المهلة
}
?>

تحذير: إن كان مؤشِّر الملف المُمرَّر إلى الدالة feof()‎ غير صالح، فربما يؤدي ذلك إلى حلقة تكرار لا نهائيَّة بسبب فشل الدالة في إعادة القيمة TRUE. المثال 2: استعمال مؤشِّر ملف غير صحيح

<?php
// FALSE القيمة fopen() إن كان الملف غير قابل للقراءة أو غير موجود، فستعيد الدالة
$file = @fopen("no_such_file", "r");

// سيُصدر تحذيرًا ويتسبب في جعل حلقة التكرار التالية غير نهائية FALSE القيمة fopen() إعادة الدالة 
while (!feof($file)) {
}

fclose($file);
?>

انظر أيضًا

  • الدالة fopen()‎: تفتح ملفًا أو عنوان URL.
  • الدالة fclose()‎: تغلق مؤشر ملف مفتوح.
  • الدالة fgets()‎: تجلب سطرًا واحدًا من ملف.
  • الدالة fgetc()‎: تجلب محرفًا واحدًا من ملف محدَّد.
  • الدالة fgetss()‎: تجلب سطرًا من ملف وتزيل وسوم HTML.
  • الدالة fread()‎: تقرأ من الملف بطريقة آمنة ثنائيًّا.
  • الدالة fwrite()‎: تكتب على الملف بطريقة آمنة ثنائيًّا.
  • الدالة file()‎: تقرأ الملف بأكمله ثمَّ تضع محتوياته في مصفوفة.

مصادر