سؤال

لقد حاولت هذا:

    <?php
$fileip = fopen("test.txt","r");

?>

يجب أن يكون هذا قد فتح الملف في قراءة الحالة المزاجية فقط، لكنه لا يوجد ملف Test.txt موجود في نفس المجلد مثل index.php (مجلد المشروع الرئيسي)

الملف لا يفتح

وعندما وضعت صدى مثل:

echo $fileip;

عادت

معرف الموارد رقم 3

هل كانت مفيدة؟

المحلول

لفت الملف على ما يرام، لا يمكنك صدى ذلك مثل هذا لأنه مؤشر ملفات، وليس محتويات الملف نفسه. تحتاج إلى استخدام fread() لقراءة المحتويات الفعلية، أو الأفضل بعد، استخدم file_get_contents() الحصول على المحتوى على الفور.

القيام به في طريقك:

$handle = fopen("test.txt", "r");
$fileip = fread($handle, filesize($filename));
fclose($handle);

echo $fileip;

أو، باستخدام file_get_contents():

$fileip = file_get_contents("test.txt");

echo $fileip;

نصائح أخرى

من php.net:

إرجاع مورد مؤشر الملفات على النجاح، أو خطأ خطأ.

منذ أ resource تم إرجاعها، وقد فتح الملف بنجاح، فأنت بحاجة إلى مزيد من العمليات مثل fwrite, ، إلخ على الملف الخاص بك. لذلك ليس هناك خطأ، الملف هناك التلاعب.

إذا حصلت على معرف مورد نتيجة لاستدعاء FOPEN، فقد نجحت، لأنه سيعود FALSE إذا فشل ذلك. إذن ما الذي يجعلك بالضبط تشك في أن الملف مفتوح بالفعل؟

يفحص http://www.php.net/fopen. للمزيد من المعلومات.

لقد فتحت فقط مقبض ملف، وليس الملف نفسه.

إذا كنت تستخدم PHP5 - الذي يجب أن تكون فعلا لتطوير جديد، فيمكنك بدلا من ذلك استخدام $ fileip = fileip = file_get_contents ("test.txt") الذي سيقرأ محتويات هذا الملف في المخزن المؤقت.

مثال كامل.

<?php
    $fileip = file_get_contents("test.txt");

    echo($fileip);
?>

لإخراج محتويات ملف النص:

$fh   = fopen('myfile.txt', 'r');
$text = fread($fh, filesize('myfile.txt'));
echo $text;
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top