فایل ها در PHP
باز کردن فایل در PHP
تابع ()fopen برای باز کردن فایل ها در php مورد استفاده قرار می گیرد.
پارامتر اول این تابع شامل نام فایلی است که می خواهیم باز شود و پارامتر دوم مشخص می کند که فایل در چه حالتی باز شود:
<html>
<body>
<?php
$file=fopen("welcome.txt","r");
?>
</body>
</html>
فایل ممکن است در یکی از حالات زیر باز شود:
حالت | توضیحات |
---|---|
r |
فقط خواندنی. از ابتدای فایل آغاز می شود |
r+ |
خواندنی/نوشتنی. از ابتدای فایل آغاز می شود |
w |
فقط نوشتنی. فایل را باز و محتویات آن را پاک می کند، یا اگر فایلی وجود نداشت آن را ایجاد می کند |
w+ |
خواندنی/نوشتنی. فایل را باز و محتویات آن را پاک می کند، یا اگر فایلی وجود نداشت آن را ایجاد می کند |
a |
افزودن(الحاق). فایل را باز و در انتهای آن می نویسد، یا اگر فایلی وجود نداشت آن را ایجاد می کند |
a+ |
خواندنی/افزودنی. محتویات فایل را با نوشتن در انتهای آن حفظ می کند |
x |
فقط نوشتنی. یک فایل جدید ایجاد می کند.اگر فایل درحال حاضر وجود داشته باشد false و یک خطا برمیگرداند |
x+ |
خواندنی/نوشتنی. یک فایل جدید ایجاد می کند. اگر فایل درحال حاضر وجود داشته باشد false و یک خطا برمیگرداند |
نکته: اگر تابع ()fopen قادر به باز کردن فایل مشخص شده نباشد٫ مقدار "0" یا (false) را برمی گرداند.
مثال:
در مثال زیر اگر تابع ()fopenقادر به باز کردن فایل مشخص شده نباشد یک پیغام تولید می کند:
<html>
<body>
<?php
$file=fopen("welcome.txt","r") or exit("Unable to open file!");
?>
</body>
</html>
بستن فایل در PHP
تابع ()fclose برای بستن یک فایل باز استفاده می شود:
<?php
$file = fopen("test.txt","r");
//some code to be executed
fclose($file);
?>
چک کردن پایان فایل
تابع ()feof بررسی می کند که آیا به پایان فایل (eof) رسیده ایم یا نه.
تابع ()feof برای ایجاد حلقه در داده های با طول نامشخص مناسب است.
توجه: شما نمی توانید از فایل هایی که در حالت w و a و x باز شده اند، بخوانید!
if (feof($file)) echo "End of file";
خواندن خط به خط یک فایل
تابع ()fgets برای خواندن یک خط از یک فایل، مورد استفاده قرار می گیرد.
نکته: بعد از هر بار فراخوانی این تابع، اشاره گر فایل، به خط بعدی جابه جا می شود.
مثال:
مثال زیر یک فایل را تا پایان فایل، خط به خط می خواند:
<?php
$file = fopen("welcome.txt", "r") or exit("Unable to open file!");
//Output a line of the file until the end is reached
while(!feof($file))
{
echo fgets($file). "<br />";
}
fclose($file);
?>
خواندن کاراکتر به کاراکتر یک فایل
تابع ()fgetc برای خواندن یک کاراکتر تنها از یک فایل، مورد استفاده قرار می گیرد.
نکته: بعد از فراخوانی این تابع، اشاره گر فایل به کاراکتر بعدی جابه جا می شود.
مثال:
مثال زیر یک فایل را تا پایان فایل، کاراکتر به کاراکتر می خواند:
<?php
$file=fopen("welcome.txt","r") or exit("Unable to open file!");
while (!feof($file))
{
echo fgetc($file);
}
fclose($file);
?>
برای مشاهده فیلم ها و آموزش های پروژه محور برنامه نویسی PHP کلیک کنید.
- نوشته شده توسط امیر پهلوان صادق
- بازدید: 22906
دیدگاهها
تابع feof چک میکنه که به پایان فایل رسیدیم یا نه.بعد وقتی کنارش این علامت ! میاد چه چیزی رو چک میکنه؟به پایان رسیدن یا نرسیدن؟
سلام. علامت تعجب ! به معنی نقیض هست. یعنی false رو تبدیل به true می کنه و برعکس. حالا تابع feof بررسی می کنه که به پایان فایل رسیده ایم یا نه، اگه رسیده باشیم true رو برمی گرداند. اگر نرسیده باشیم یا به علت های دیگر false رو برمی گردونه.
حالا feof! این طور تفسیر میشه: نقیض feof، یعنی هرچی بود برعکسش کن. مثلا اگه فایل به انتها رسیده باشد، feof! یعنی فایل به انتها نرسیده است.
به مثال زیر توجه کنید:
<?php
//ابتدا فایل را باز می کنیم
$file = fopen("test.txt ", "r");
//تا زمانی که فایل به پایان نرسیده است کاری را انجام بده
while(! feof($file)) {
کاری را انجام بده
}
fclose($file);
?>
سلام و خداقوت بهتون. ببخشید منم مثل کدهای شما رو داخل یک فایل php که کدهای دیگه هم داره زدم اما اون فایل رو باز نمیکنه(فایل txt رو هم داخل htdocs گذاشتم). این خط کد هم(echo file_get_conten ts($php.txt); //comment) که میزنم باعث میشه وقتی از لوکال هاستم فایل پی اچ پی رو بخوام باز کنم, داخل صفحه ارور بده.(بجای $filename هم که $php.txt) گذاشتم. چون نام فایل php.txt هست. مشکلم چیه؟
سلام و خداقوت به شما. من یک فایل txt با یک متن کوچک رو باز کردم با حالت های مختلف اما فرقی حاصل نشد.ینی در تمام حالات فقط میتونستم متنو بخونم و انتهاش چیزی نمیشد بنویسم!! چرا؟ تشکر
سلام . ممنون
کد زیر رو برای شما آماده کردیم. این کد، یک متن رو در داخل یک فایل txt اضافه می کنه:
beyamooz.com/images/PHP/questionFiles/test2.zip
این دستور فقط میتونه فایل txt باز کنه؟
خیر، بعنوان مثال فایل های تصویری و PDF و ... را نیز می توان استفاده نمود.
با سلام
لطفا درصورت امکان راهنمایی فرمائید میخوام ازسمت کلاینت محتویات یک فایل اکسل(xlsx) را درون یک جدول دیتابیس mysql آپلود کنم
بافایل های csvکار کردم بافونت فارسی مشکل داشت وباید فایل اکسل تبدیل می شد به csvاگه کسی ازدوستان میتونه اینکار رو انجام بده حاضرم هزینه هم پرداخت کنم.چون نیازدارم.ایمیل [email protected]
با سلام.
برای این کار شما نیاز به برنامهنویسی دارید. اگر خودتون قصد انجامش رو دارید، بگید دقیقا کجاش مشکل دارید تا راهنماییتون کنم و اگر قصد دارید براتون انجام بدم، دقیق توضیح بدید که چه کار میخواید کنید.
در مورد هزینهشم بسته به کارتون میتونیم با هم کنار بیایم.
میتونید به ایمیل من پیام بدید: [email protected]
با این دستور هم نخوند..
این کد هستش..$f=fopen( "not.txt","r") or exit("do'not open this file");
کد کامل صفحه رو بذارید...
به علامت > و < دقت کنید.
آدرس دهی رو هم بگید.
خسته نباشید.
من یه فایل تکست درست کردم با اسم" نوت"....ولی اپنش نمیکنه...نمیدون م مشکل چیه...دستوراتم هم مثل شماست عینا..
اصلا اینکه بازش میکنه یعنی اینکه ما باید محتویات مثلا فایل "نوت" رو ببنیم دیگه..درسته !؟
چرا برای من چیزی نشون نمیده.
با سلام.
با دستور echo file_get_conten ts($filename); //comment ببینید میتونید فایل رو بخونید یا نه. اگر فایل خونده بشه، یعنی اینکه در دستورات بالا یه جا رو دارید اشتباه میرید.
بعدش تو فایل کاراکتر اول رو یه حرف بنویسید!
سلام
خسته نباشید .
چطور میتونم در این کد آدرس رو از template_direct ory به روت دایرکتوری تغییر بدم
wp_enqueue_styl e( 'cloudme-font-a wesome', get_template_direct ory_uri().'/css/font-awesome.min.css');
میخوام فونت ها رو به جای اینکه از دایرکتوری قالب بگیر از public_html بگیره مثلا ادرس بشه
'wp-content/themes/css/font-awesome.min.css');
یا یه آدرس دلخواه
لطفا راهنمایی کنید
سلام. به احتمال زیاد، روت دایرکتوری در وردپرس پیش فرض هست و نیازی به تابع نداره! بنابراین می تونید دستور زیر رو امتحان کنید:
wp_enqueue_style( 'font-awesome.m in', 'wp-content/themes/css/font-awesome.min.css');
توجه کنید که در تابع wp_enqueue_styl e، در آرگومان اول، باید نام استایل خودتون رو قرار بدید و در آرگومان دوم، آدرس رو باید قرار بدید.
اگر این دستور کار نکرد، اطلاع بدید!
ممنون
ببخشید آیا راهی هست که یک فایل را از رایانه ی کابر باز کنیم یا ویرایش یا ذخیره کنیم؟
با html یا js هم نمیشه؟
با استفاده از JavaScript می توانید فایل ها را باز کنید، بخوانید و داخلشان بنویسید:fopen()
fread()
fwrite()
تابع fopen دو پارامتر ورودی دارد، اولین پارامتر، با آدرس فایل تنظیم می شود و دومی نحوه ی باز کردن فایل را مشخص می کند یعنی اگر با عدد 0 تنظیم شود، فایل بصورت فقط خواندنی باز خواهد شد و اگر با عدد 1 تنظیم شود، فایل بصورت نوشتنی باز خواهد شد ...
مطمئنید که چنین توابعی در جاوااسکریپت هست؟ (من گفتم از رایانه ی کاربر یعنی کلاینت)
اگر واقعا هست آیا امنیت کاربر را به خطر نمی اندازه؟
www.careerride.com/JScript-read-and-write-file.aspx
سلام میخواستم بدونم که با دستور fopen() فایلو از کلاینت میخونه یا از سرور؟
سمت سرور
آموزش فایل ها در PHP عالی بود.
با سلام سایتتون عالیه واقعا ممنون
یه سوال :
میخاستم بدونم از لحاظ کارایی این توابع باز کردن فایل
با توابه فصل قبل (include-requir e.....) چه فرقی میکنه
اخه جفتشون یه صفحه php رو بار گزاری میکنن دیگه
بازم تشکر
سلام
دستور include_once: با استفاده از این دستور می توانیم، کدهای یک فایل php دیگر را به کدهایمان اضافه کنیم.
دستور fopen: با استفاده از این دستور می توانید، فایل ها را باز کنید، بخوانید و یا محتوایشان را تغیر دهید. در اینجا منظور از فایل می تواند یک فایل متنی با فرمت txt. یا docx. و یا فایل های تصویری با فرمت gif. یا jpeg. و ... باشد.