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

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

(PHP 4, PHP 5, PHP 7)

تطبع الدالة fpassthru()‎ جميع محتويات الملف المتبقِّية على المخزن المؤقت للخرج.

الوصف

int fpassthru ( resource $handle )

تقرأ هذه الدالة الملف الذي يشير إليه المورد handle من موقع المؤشِّر الحالي وحتى نهاية الملف (EOF) ثمَّ تكتب هذه البيانات المقروءة على المخزن المؤقت للخرج.

قد تحتاج إلى استدعاء الدالة rewind()‎ لإعادة موقع المؤشِّر إلى بداية الملف إن أضفت بعض البيانات إلى هذا الملف.

إن أردت طباعة كامل محتوى الملف على المخزن المؤقت للخرج دون التعديل عليه أو تحديد قيمة إزاحة معيَّنة لموقع المؤشر، فاستعمل حينئذٍ الدالة readfile()‎ إذ ستوفر عليك عناء استدعاء الدالة fopen()‎.

المعاملات

handle

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

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

يُعاد عدد المحارف التي قرأت من الملف ومُرِّرت إلى المخزن المؤقت للخرج أو تُعاد القيمة FALSE إن حصل أي خطأ.

أمثلة

المثال 1: استعمال الدالة fpassthru()‎ مع ملفات تحتوي على بيانات بالنظام الثنائي

<?php

// فتح الملف في الوضع الثنائي
$name = './img/ok.png';
$fp = fopen($name, 'rb');

// إرسال الترويسة الصحيحة
header("Content-Type: image/png");
header("Content-Length: " . filesize($name));

// إظهار الصورة ثمَّ إيقاف السكربت
fpassthru($fp);
exit;

?>

ملاحظات

يجب أن تتأكد عند استعمال الدالة fpassthru()‎ مع ملفات ذات محتوى ثنائي على نظام ويندوز أن تفتح هذا الملف في الوضع الثنائي بإضافة الراية 'b' إلى قيمة المعامل mode عند استدعاء الدالة fopen()‎.

يُنصح باستعمال الراية 'b' عند التعامل مع الملفات ذات المحتوى الثنائي حتى إن كان النظام لا يتطلب ذلك إذ سيساعد هذا على جعل سكربتك أكثر محموليَّة بين المنصات.

انظر أيضًا

  • الدالة fopen()‎: تفتح ملفًا أو عنوان URL.
  • الدالة popen()‎: تفتح عمليَّة وتشير إليها بمؤشر شبيه بمؤشر ملف.
  • الدالة fsockopen()‎: تفتح اتصالًا بالإنترنت أو بمقبس نطاق يونكس (Unix domain socket).
  • الدالة readfile()‎: تقرأ ملفًا وتُظهر محتواه.
  • الدالة exit()‎: توقف عمل السكربت.

مصادر