最近写php代码需从文本文件读取文本行(文本文件是ANSI字符集)
php的2个内置函数 file 和 fgets 可以实现这个功能
file — 把整个文件读入一个数组中
fgets — 从文件指针中读取一行
共同点:二者读取的每一个文本行末尾都包含一个换行符(读取使用ANSI字符集的文本这两个字符各占一个字节,若把文本文件转换成utf-8字符集则结果不同,未测试);
不同点:以上说的是换行符以 \n输入,若换行以\r\n输入,那么file会读入\r\n,fgets会处理掉\r保留\n,\r与\n用ord()函数显示出的ascii码值分别是13与10。
以上都使用ANSI字符集文本测试。
用fwrite()往文本文件写入时有个奇怪的现象, fopen()用‘wt’打开,写入“\r\n”后,用16进制编辑器打开文本文件会发现换行处代码为cr cr lf(\r\r\n),而用‘w’方式打开则正常“\r\n”。
Atas ialah kandungan terperinci php中file()函数与fgets()函数的共同与不同. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!