با سلام خدمت شما دوستان عزیز ، امیدوارم که شاد باشید و سلامت و با اموزشهای ما همراه ، در این مبحث درباره ی تابع های مرتبط با فایل ها میخوام توضیح بدم.

باز کردن فایل

خواندن فایل

نوشتن فایل

بستن فایل

باز کردن و بستن فایل ها

تابع  fopen()برای باز کردن فایل ها به کار می رود. به دو آرگومان احتیاج دارد، که اولی اسم فایل را مشخص می کند و دیگری، حالتی {mode} که در آن عمل و فعالیت را تعیین کند.

حالت و نوع فایل ها از شِش option یا گزینه ی انتخابی زیر خارج نیست.

mode

Purpose   {هدف}

r

فایل ها را فقط برای خواندن باز می کند.

File pointer یا نشانه رو فایل را در ابتدای فایل قرار می دهد.

r+

فایل ها را به منظور خواندن و {write} نوشتن باز می کند.

File pointer یا نشانه رو فایل را در ابتدای فایل قرار می دهد.

w

فایل ها را فقط به منظور نوشتن باز می کند.

نشانه رو (File pointer) فایل را، در ابتدای فایل قرار می دهد.

طول فایل را تا صفر کوتاه می کند یا فایل را تا طول zero برش می دهد. در صورتی که فایلی وجود نداشته باشد، یک فایل می سازد.

a

فایل ها را فقط برای خواندن باز می کند.

File pointer را در انتهای فایل قرار می دهد. در صورتی که فایلی وجود نداشته باشد، سعی می کند یک فایل  بسازد.

a+

فایل ها را تنها به منظور خواندن و نوشتن باز می کند.  File pointer را در انتهای فایل قرار می دهد. در صورتی که فایلی وجود نداشته باشد، سعی می کند یک فایل  بسازد.

اگر تلاش سیستم برای باز کردن یک فایل به شکست بیانجامد، fopen مقدار false می دهد. در غیر این صورت یک file pointer برگردانده می شود که از آن می توان برای خواندن و نوشتن بیشتر این فایل استفاده کرد.

پس از وارد آوردن تغییرات به فایل باز شده،  باید حتما فایل را با fclose  ببندید.

تابع fclose به file pointer به عنوان آرگومان نیاز دارد. در صورتی که عملیات بسته شدن {closure} با موفقیت صورت پذیرد، نتیجه ی true یا درست می دهد و اگر شکست بخورد false برمی گرداند.

خواندن فایل

زمانی که فایلی را با تابع fopen باز می کنید، برای خواندن آن باید از fread()  استفاده کنید. این تابع به دو آرگومان نیاز دارد. یکی از این دو آرگومان file pointer است و دیگری طول فایل است که در واحد بایت نمایش داده می شود.

طول یک فایل را می توان به کمک تابع filesize() پیدا کرد، که این خود از اسم فایل به عنوان آرگومان استفاده می کند و اندازه ی فایل را با واحد بایت در جواب نمایش می دهد.

مراحلی که برای خواندن فایل باید طی کرد به شرح زیر است.

فایل را با تابع fopen() باز کنید.

طول فایل را با استفاده از تابع filesize() به دست بیاورید.

محتوا و content فایل را به کمک تابع fread ()  مطالعه کنید.

فایل را با تابع fclose() ببندید.

مثال زیر محتوای یک فایل متنی را به یک متغیر اختصاص می دهد، سپس آن محتویات را بر روی صفحه به نمایش می گذارد.

‎<html>‎

‎<head>‎

‎    <title>Reading a file using PHP</title>‎

‎</head>‎

‎<body>‎

‎ ‎

‎    <?php‎

‎    $filename = “/home/user/guest/tmp. txt”;‎

‎    $file = fopen( $filename‎، ‏‎ “r” );‎

‎    if( $file == false )‎

‎    {‎

‎    echo ( “Error in opening file” );‎

‎    exit();‎

‎    }‎

‎    $filesize = filesize( $filename );‎

‎    $filetext = fread( $file‎، ‏‎ $filesize );‎

‎ ‎

‎    fclose( $file );‎

‎ ‎

‎    echo ( “File size : $filesize bytes” );‎

‎    echo ( “<pre>$filetext</pre>” );‎

‎    ?>‎

‎ ‎

‎</body>‎

نوشتن فایل

با تابع در PHP یک فایل را می توان نوشت یا یک متن را می توان به یک فایل آماده و موجود پیوست کرد. این تابع به دو آرگومان نیاز دارد، که یک file pointer و یک رشته اطلاعات {string of data} که قرار است نوشته شود. در صورت تمایل می توان یک آرگومان عددی integer سومی را منظور کرد  که طول اطلاعاتی را که باید نوشته شود، مشخص می کند. در صورت لحاظ کردن آرگومان سوم، پس از این که طول مورد نظر به دست آید نوشتن به پایان می رسد.

مثال زیر text file جدیدی پدید می آورد، سپس text heading {تیتر متن} کوتاهی در داخل آن می نویسد و قرار می دهد. پس از بسته شدن این فایل، تابع file_exist() وجود این فایل را تایید می کند. این تابع از  اسم فایل به عنوان آرگومان کمک می گیرد.

‎<?php‎

‎$filename = “/home/user/guest/newfile. txt”;‎

‎$file = fopen( $filename‎، ‏‎ “w” );‎

if( $file == false )‎

‎{‎

‎   echo ( “Error in opening new file” );‎

‎   exit();‎

‎}‎

fwrite( $file، ‏‎ “This is  a simple test\n” );‎

fclose( $file );‎

‎?>‎

‎ ‎

‎<html>‎

‎<head>‎

‎    <title>Writing a file using PHP</title>‎

‎</head>‎

‎<body>‎

‎ ‎

‎    <?php‎

‎    if( file_exist( $filename ) )‎

‎    {‎

‎    $filesize = filesize( $filename );‎

‎    $msg = “File  created with name $filename “;‎

‎    $msg. = “containing $filesize bytes”;‎

‎    echo ($msg );‎

‎    }‎

‎    else

‎    {‎

‎    echo (“File $filename does not exit” );‎

‎    }‎

‎    ?>‎

‎</body>‎

‎</html>‎