در این درس به عملیات زیر که مبحث کار با فایل ها در php سر و کار دارد میپردازیم :
در زبان برنامه نویسی php تابع fopen برای باز کردن یک فایل میباشد . این تابع دو ورودی میپذیرد که اولی نام فایلی است که میخواهیم باز کنیم و دومی شیوه و نوع باز کردن فایل میباشد که انواع مدلهای باز کردن فایل در php را در زیر نوشتیم :
شماره | مدل و هدف |
1 | r فایل را بعنوان یک فایل فقط خواندنی یا read only باز میکند . اشاره گر در ابتدای محتوای فایل قرار میگیرد |
2 | r+ باز کردن فایل با منظور خواندن و همچنین نوشتن اطلاعات روی آن . اشاره گر در ابتدای محتوای فایل قرار میگیرد . |
3 | w باز کردن فایل با منظور فقط نوشتن اطلاعات روی آن . اشاره گر در ابتدای فایل قرار میگیرد وطول فایل به صفر کاهش پیدا میکند . اگر فایل به کل وجود نداشته باشد ساخته میشود . |
4 | w+ باز کردن فایل با منظور نوشتن اطلاعات و همچنین خواندن. اشاره گر در ابتدای فایل قرار میگیرد وطول فایل به صفر کاهش پیدا میکند . اگر فایل به کل وجود نداشته باشد ساخته میشود . |
5 | a فایل را با منظور فقط نوشتن اطلاعات روی آن باز میکند . اشاره گر در ابتدا قرار میگیرد اگر فایل وجود نداشته باشد ساخته میشود |
6 | a+ فایل را با منظور فقط نوشتن اطلاعات و خواندن انها صورت میگیرد. اشاره گر در ابتدا قرار میگیرد اگر فایل وجود نداشته باشد ساخته میشود |
اگر باز کردن یک فایل توسط تابع fopen به هر دلیلی امکان پذیر نباشد این تابع مقدار false برمیگرداند و اگر با موفقیت فایل باز شود file pointer برگردانده میشود که برای نوشتن و خواندن اطلاعات به درد میخورد .
بعد از اینکه کارمان با فایل تمام شد ، یک مورد مهم وجود دارد و آن بستن آن فایل با تابع fclose میباشد .
تابع fclose یک file pointer را بعنوان آرگومان درخواست میکند و زمانی که فایل با موفقیت بسته شد ،true برمیگرداند و اگر با خطا مواجه شد false برمیگرداند .
در زبان برنامه نویسی پی اچ پی ، زمانی که یک فایل با استفاده از تابع fopen باز شد ، وقت آن رسیده است که محتویات درونی آن با تابع fread خوانده شود.
این تابع دو آرگومان ورودی دارد که یکی اشاره به فایل مورد نظر میباشد و دیگری سایز آن میباشد که به بایت باید تعریف شود .
طول یا سایز فایل میتواند توسط تابع filesize بصورت کامل به دست بیاید .
این تابع یک ورودی دارد و آن هم فایل هست و سایز فایل را به بایت حساب میکند و تحویل میدهد .
بصورت جمع بندی کارهایی که برای خواندن محتوای یک فایل باید انجام پذیرد :
برای جمع بندی بالا مثال زیر را میتوانید استفاده کنید تا مبحث را کامل تر یاد بگیرید
<html>
<head>
<title>Reading a file using PHP</title>
</head>
<body>
<?php
$filename = "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>
</html>
خروجی کدهای بالا باید به شکل زیر باشد :
در زبان php اگر بخواهیم به یک فایل جدید یا یک فایل که محتوا داشته باشد ، اطلاعات بنویسیم از تابع fwrite استفاده میکنیم.
این تابع دو آرگومان بعنوان ورودی دارد که یکی اشاره به فایل مورد نظر است و دومی رشته ای که میخواهیم به فایل اضافه شود .
البته یک آرگومان دیگر بعنوان سومین ورودی این تابع بصورت اختیاری وجود دارد که طول اطلاعاتی که میخواهیم در فایل نوشته شود را مشخص میکند . اگر سومین آرگومان تعریف شود عمل نوشتن روی فایل بعد از رسیدن به آن طول متوقف میشود .
مثال زیر یک فایل جدید درست میکند و یک متن ساده در آن مینویسد برای بررسی اینکه فایلی وجود دارد یا نه میتوانید از تابع 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
$filename = "newfile.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 ( "$filetext" );
echo("file name: $filename");
?>
</body>
</html>
خروجی مثال بالا به شکل تصویر زیر خواهد بود :
اتمام درس
محصولات برگزیده مناسب شما
دوره ی آموزش ساخت فریمورک برای پی اچ پی با PHP MVC دوره ی آموزش کامل زبان پی اچ پی ( PHP ) دوره ی پروژه محور ساخت هتلداری با php mvc دوره پروژه محور ساخت فروشگاه بامیلو با لاراول