الفرق بين المراجعتين ل"PHP/feof"
جميل-بيلوني (نقاش | مساهمات) (إضافة محتويات الصفحة.) |
(لا فرق)
|
مراجعة 08:20، 21 أبريل 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);
?>