‎‎بازوبسته وخواندن فايلPHP File Open/Read/Close

Previous >    <Next  

‎‎دراين بخش نشان ميدهيم كه چگونه يك فايل در سرور را باز وبسته نموده وآنرا بخوانيد.

‎‎باز كردن فايلPHP open File-‎fopen()‎ -‎

‎يك روش بهتر براي باز نمودن فايل با تابع‎fopen()‎‎ ميباشد .اين روش امكانات بيشتر ‎نسبت به تابع‎readfile()‎‎ ‎در اختيار قرار ميدهد.

‎ما دراينجا همان فايل متني‎"webdirectory.txt‎"‎براي مثالها استفاده ميكنيم .محتوي فايل مطابق ‎زير است.

AJAX = Asynchronous JavaScript and XML
CSS = Cascading Style Sheets
HTML = Hyper Text Markup Language
PHP = PHP Hypertext Preprocessor
SQL = Structured Query Language
SVG = Scalable Vector Graphics
XML = EXtensible Markup Language

‎‎فرمت كلي تابع‎fopen()‎‎ مطابق زيراست.

$myfile= fopen(filename,mode) or die(message);

‎تابع فوق داراي دو پارامتر ميباشد .اوليه پارامتر نام فايل و دومين پارامتر نوع بازكردن فايل ‎نشان ميدهد.در صورتيكه تابع بدليلي نتواند آنرا باز نمايد، پيغا صادر مينمايد .درصورت موفقيت ‎مشخصه فايل در متغير‎ $myfile‎ قرار ميگيرد .از اين متغير براي توابع خواندن ونوشتن ‎استفاده ميشود.

‎‎مثال ـ در مثال زير فايل متني فوق باز ومحتوي آن خوانده وسپس بسته ميشود.

<?php 
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
echo fread($myfile,filesize("webdictionary.txt"));
fclose($myfile);
?> 

Try It Yourself

‎نكته ـ دستور‎fread( )‎ و‎fclose( )‎ بدنبال توضيح داده ميشود. ‎يك فايل با دستور فوق ميتواند در حالتهاي زير بازشود.

‎‎ ‎‎ ‎‎ ‎‎
modeشرح حالت
r‎‎ .بازكردن درحالت فقط خواندني .نشانه درابتداي فايل قرار ميگيرد
w‎‎ بازنمودن فقط نوشتني .محتوي درصورت وجود فايل پاك ميشود .نشانه درابتدا‎ .در صورت عدم وجود فايل آن ايجاد ميشود‎
a باز نمودن فايل فقط نوشتني، نشانه در انتهاي فايل قرارميگيرد .در صورت عدم وجود فايل آن ايجاد ميشود‎
x‎‎ .ايجاد فايل در حالت نوشتني .در صورتيكه فايل موجود باشد پيغام خطا صادر ميشود‎
r+ .باز كردن فايل براي خواندن ونوشتن .نشانه درابتداي فايل قرار ميگيرد‎
w+ .باز كردن فايل براي خواندن ونوشتن .محتوي فايل موجود پاك ميشود، در صورت عدم وجود ايجادميشود‎
a+‎‎ .بازكردن براي خواندن ونوشتن .نشانه درانتهاي فايل قرار ميگيرد .در صورت عدم وجود ايجاد ميشود‎
x+ .ايجاد فايل براي خواندن ونوشتن .درصورت وجود فايل، خطا صادر ميشود‎

‎‎تابع خواندنPHP Read File -‎fread()‎

‎‎تابع‎fread( )‎ اطلاعات را از فايل بازشده ميخواند. فرمت كلي تابع مطابق زير است.

$vread=fread($myfile,$nbyte_read);

‎تابع فوق داراي دو پارامتر ميباشد .پارامتر‎$myfile‎ فايلي است كه توسط دستورfopen ‎باز شده است ومشخصه فايل در آن قرار دارد .پارامتر دوم‎$nbyte_read ‎تعداد حدا كثر ‎بايتي است كه بايد خوانده شود.

‎‎كدphp زير اطلاعات كامل فايل ‎"webdictionary.txt‎"‎را ميخواند .

fread($myfile,filesize(‎"webdictionary.txt‎"));‎‎ ‎ $myfile=fopen(‎"webdictionary.txt‎");‎‎

‎‎تابع‎filesize( )‎ تعداد بايت محتوي يك فايل برگشت ميدهد.

‎‎تابع بستن فايل‎ PHP Close File-‎fclose( )

‎تابع‎ fclose( )‎ براي بستن فايل استفاده ميشود .بهترين نوع برنامه نويسي اينستكه ‎تمام فايلهاي باز كه باآن كاري نداريم، بسته شود .باز بودن فايل بدون نياز، در اجرا باعث ‎استفاده ازمنابع سرور ميشود،وكاهش بيمورد منابع است.

‎‎فرمت كلي تابع مطابق زير است.

fclose($myfile);

‎براي بستن فايل نياز به نام باز شده در تابعfopen ميباشد، كه بايد بعنوان پارامتر تابع ذكر ‎شود .در مثال زير روش اقدام مشخص است

<?php 
$myfile = fopen("webdictionary.txt", "r");
// some code to be executed....
fclose($myfile);
?>

‎‎خواندن يك خط فايل‎ PHP Single Line-‎fgets( )

‎تابع‎fgets( )‎ براي خواندن يك خط ازفايل مورد استفاده قرار ميگيرد.فرمت كلي ‎مطابق زير است.

fgets($myfile);

‎مثال ـ در مثال زير خط اول فايل‎"webdictionary.txt‎"‎خوانده شده،و در صفحه اسكريت نمايش داده ‎ميشود.

<?php 
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
echo fgets($myfile);
fclose($myfile);
?> 

Try It Yourself

‎‎نكته ـ بعداز خواندن فايل با تابع‎fgets( ) ‎نشانه به خط بعدي منتقل ميشود.

‎‎كنترل انتهاي فايل‎ PHP Chech End-‎Of-‎File-‎ eof( )

‎براي كنترل انتهاي فايل از تابع‎feof( ) ‎ استفاده ميشود .فرمت كلي تابع مطابق ‎زير است.

feof($myfile);

‎در صورتيكه نتيجه برگشتي تابعTRUE باشد نشانه به انتهاي فايل رسيده است، درغير اينصورت ‎نشانه در انتهاي فايل نيست .معمولا از شرط!feof()‎ ‎در دستورات استفاده ميشود، كه معني اينست ‎نشانه در انتهاي فايل نيست، اگر درست باشد كار ادامه مي يابد.

‎‎مثال ـ در مثال زير فايل خط به خط خوانده ميشود تا نشانه به انتهاي فايل برسد.

<?php 
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
// Output one line until end-of-file
while(!feof($myfile)) {
  echo fgets($myfile) . "<br>";
}
fclose($myfile);
?> 

Try It Yourself

‎‎خواندن تك كراكتر‎ PHP Read Single Charcter-‎ fgetc( )

‎تابع‎fgetc( ) ‎ براي خواندن يك كراكتر فايل استفاده ميشد .فرمت كلي تابع مطابق ‎زير است.

fgetc($myfile);

‎مثال ـ در مثال زير فايل‎"webdictionary.txt‎"‎كراكتر به كراكتر خوانده ميشود .هركراكتر كه ‎خوانده شد،نشانه يك كراكتر جلو ميرود تا بانتهاي فايل برسد.

 <?php 
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
// Output one character until end-of-file
while(!feof($myfile)) {
  echo fgetc($myfile);
}
fclose($myfile);
?> 

Try It Yourself

‎نكته ـ برنامه هاي مروبط به مديريت فايل بدلايل امنيت اطلاعات محدويت هائي وجود دارد كه اجازه ‎اصلاح براي كاربر داده نمي شود.


Previous >    <Next