PHP写入文本文件时去除多余换行及解决w模式文件空白问题
问题原因
- 写入内容前置带换行的根本原因是你从JSON接口解析得到的
$TrID变量本身就包含前置空白字符(包括换行、空格、制表符等),未做清理直接写入就会出现空行 w模式写入后文件为空的原因是当$TrID的有效内容前只有换行符、或$TrID整体为空时,写入后无有效可见内容,看起来就是空文件
解决方案
首先使用trim()函数清理$TrID前后的所有空白字符,再判断清理后的内容不为空后执行写入操作即可解决问题。
w模式(覆盖写入)代码示例
// 清理ID前后的所有空白字符 $cleanTrID = trim($TrID); // 仅当ID有效时执行写入,避免生成无效空文件 if (!empty($cleanTrID)) { $myFile = "trID.txt"; $myFileLink = fopen($myFile, 'w'); // 如果不需要写入后保留尾部换行,直接写$cleanTrID即可 $newContents = $cleanTrID . "\n"; fwrite($myFileLink, $newContents); fclose($myFileLink); }
a模式(追加写入)代码示例
如果需要追加写入多条ID且每条单独一行、无前置空行,使用清理后的变量写入即可:
$cleanTrID = trim($TrID); if (!empty($cleanTrID)) { $myFile = "trID.txt"; $myFileLink = fopen($myFile, 'a'); $newContents = $cleanTrID . "\n"; fwrite($myFileLink, $newContents); fclose($myFileLink); }
内容的提问来源于stack exchange,提问作者bob24
相关产品推荐
相关产品推荐

