php之fgets去掉结尾换行符

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这个内置常量来兼容各平台不同的换行符,当然还得是文本中换行符是对应平台的格式。

你可能感兴趣的:(php之fgets去掉结尾换行符)