php - 关于fwrite和fread操作同一个文件
怪我咯
怪我咯 2017-05-16 12:02:35
0
3
1769
$fp = fopen("./log", "a+");
fwrite($fp,"helloworld");
rewind($fp);
var_dump( fread($fp, 10) );
fclose($fp);

执行这段代码,文件里被写入了两个helloworld,这是为什么?
还有就是这段话怎么理解:

Update mode permits reading and writing the same file; fflush or a
file-positioning function must be called between a read and a write or
vice versa. If the mode includes b after the initial letter, as in
"rb" or "w+b", that indicates a binary file. Filenames are limited to
FILENAME_MAX characters. At most FOPEN_MAX files may be open at once.

怪我咯
怪我咯

走同样的路,发现不同的人生

membalas semua(3)
巴扎黑

Fungsi

fopen的第二个参数为模式, 有r, w, b, a等模式, 其中a表示append, 也就是附加的意思, 打开时不会清空文件(把EOF指向0), 而是把文件指针指向文件末尾. 所以这个时候如果直接写的话不会覆盖原有的内容. 通过rewind menghalakan penuding fail ke titik permulaan Penulisan pada masa ini akan menimpa kandungan asal Contohnya:

$fp = open('./log.txt', 'w+');
fwrite($fp, '12345');
fclose($fp); // 此时文件的内容一定是'12345', 无论在之前是什么
$fp = open('./log.txt', 'a+');
fwrite($fp, '67890');  // 此时文件内容为'1234567890'
rewind($fp);
fwrite($fp, 'abcde'); // 此时文件内容为'abcde67890'
fclose($fp);
大家讲道理

Terdapat dua sebab: anda berada dalam mod tambah dan belum mengosongkan helloworld terakhir, jadi kali terakhir dan masa semasa kedua-duanya ada

滿天的星座

fopen("./log", "a+"); Ayat ini bermaksud membuka fail baca-tulis dengan cara yang dilampirkan Jika fail itu wujud, kandungan asal akan dikekalkan dan data akan ditambahkan ke penghujung daripada fail tersebut.

Pada masa ini, penuding fail $fp menghala ke penghujung fail untuk operasi
fwrite($fp, '12345');

Pada masa ini, jika fread($fp, 10) dicetak secara langsung, ia akan menjadi rentetan kosong Ini kerana penuding fail $fp menghala ke hujung fail Jika panjangnya dinyatakan, membaca dan mencetak ke belakang pasti akan kosong.
Dan jika anda menambah rewind($fp); untuk memundurkan kedudukan penuding fail, anda akan mendapati bahawa penuding $fp menghala ke permulaan fail, dan mencetak fread($fp, 10) akan terhasil.

Tetapi apabila anda membuka log anda, ia dilampirkan pada penghujung fail setiap kali.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!