SadraHkm

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

3 پست در این موضوع قرار دارد

سلام دوستان

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

من این کد زیر رو نوشتم .

$filePath1 = 'NewFile.php';
unlink($filePath1);
$fp1 = fopen($filePath1, 'a+');
for ($i = 1; $i <= 5; $i++) {
    fwrite($fp1, "Line $i > " . date("Y-m-d h:i:s", time()) . PHP_EOL); 
//    sleep(1);
}
fclose($fp1);

$fp1 = fopen($filePath1, 'r');
for($i = 1 ; $i <= 5 ; $i++) {
    $ch1 = fgetc($fp1);
    $str1 = fgets($fp1);
    e( $ch1 . ' | ' . $str1);
}
fclose( $fp1);

چرا این کد رو نمیشه به این صورت نوشت ؟:

$filePath1 = 'NewFile.php';
unlink($filePath1);
$fp1 = fopen($filePath1, 'a+');
for ($i = 1; $i <= 5; $i++) {
    fwrite($fp1, "Line $i > " . date("Y-m-d h:i:s", time()) . PHP_EOL); 
//    sleep(1);
}

                    
                    
for($i = 1 ; $i <= 5 ; $i++) {
    $ch1 = fgetc($fp1);
    $str1 = fgets($fp1);
    e( $ch1 . ' | ' . $str1);
}
fclose( $fp1);

در این کد دوم من fclose اولی و fopen دومی رو حذف کردم. چرا باید برای هر کاری که میخوایم روی فایل انجام بدیم باید فایل رو باز و بسته کنیم ؟

چرا نمیشه همینطور که فایل باز هست ( قسمت اول کد ) بیایم و یه کار دیگم روش انجام بدیم ( قسمت دوم کد )

الان این کد دوم ارور میده.

ممنون

0

به اشتراک گذاری این پست


لینک به پست

سلام

خیلی مطمئن نیستم اما فکر میکنم به ازای هر فایل fopen باید یک فایل fclose هم موجود باشه . الان شما دو تا فایل دارید یکی دستور نوشتنی هست یکی خواندنی. از ()fcloseall   هم میشه استفاده کرد

0

به اشتراک گذاری این پست


لینک به پست
در در 8/28/2018 at 10:48، SadraHkm گفته است :

سلام دوستان

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

من این کد زیر رو نوشتم .


$filePath1 = 'NewFile.php';
unlink($filePath1);
$fp1 = fopen($filePath1, 'a+');
for ($i = 1; $i <= 5; $i++) {
    fwrite($fp1, "Line $i > " . date("Y-m-d h:i:s", time()) . PHP_EOL); 
//    sleep(1);
}
fclose($fp1);

$fp1 = fopen($filePath1, 'r');
for($i = 1 ; $i <= 5 ; $i++) {
    $ch1 = fgetc($fp1);
    $str1 = fgets($fp1);
    e( $ch1 . ' | ' . $str1);
}
fclose( $fp1);

چرا این کد رو نمیشه به این صورت نوشت ؟:


$filePath1 = 'NewFile.php';
unlink($filePath1);
$fp1 = fopen($filePath1, 'a+');
for ($i = 1; $i <= 5; $i++) {
    fwrite($fp1, "Line $i > " . date("Y-m-d h:i:s", time()) . PHP_EOL); 
//    sleep(1);
}

                    
                    
for($i = 1 ; $i <= 5 ; $i++) {
    $ch1 = fgetc($fp1);
    $str1 = fgets($fp1);
    e( $ch1 . ' | ' . $str1);
}
fclose( $fp1);

در این کد دوم من fclose اولی و fopen دومی رو حذف کردم. چرا باید برای هر کاری که میخوایم روی فایل انجام بدیم باید فایل رو باز و بسته کنیم ؟

چرا نمیشه همینطور که فایل باز هست ( قسمت اول کد ) بیایم و یه کار دیگم روش انجام بدیم ( قسمت دوم کد )

الان این کد دوم ارور میده.

ممنون

در تکمیل پست

  عزیز

چون فلگ a+ فقط برای ایجاد و نوشتن در فایل هست و قابلیت خواندن نداره برای سوییچ به حالت خواندن و استفاده از فلگ r باید فایل رو ببندین تا از مود قبلی خارج بشه

1

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

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

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری