fgets可以从文件指针中读取一行,当我们需要操作文本文件时经常会用到这个函数,但是这个函数会将换行符也读到,所以有时候需要去除换行符。
言归正传,直接上代码
$file = fopen($yourFile,'r') or exit("读取文件异常!");
while (!feof($file)) {
//读取一行数据
$line = fgets($file,1024);
$line = trim($line);
//获得当前平台换行符长度
$changeLineLength = strlen(PHP_EOL);
//当前数据长度
$lineLength = strlen($line);
//如果当前长度为0或者是空行则跳过
if ($lineLength == 0 || $lineLength == $changeLineLength) {
continue;
}
//裁剪字符串数据,去掉结尾换行符
if (substr($line,-$changeLineLength) == PHP_EOL) {
$line = substr($line,0,$lineLength-$changeLineLength);
}
echo $line;
//其余操作
}
fclose($file);
本质上还是对字符串的截取,通过PHP_EOL这个内置常量来兼容各平台不同的换行符,当然还得是文本中换行符是对应平台的格式。