我想通过AJAX使用php调用来替换一个.txt文件的单行,其中存储了用户特定的信息。问题是,如果我一旦使用fwrite进入正确的行,它就会留下任何先前的信息,这些信息比最后未更改的信息长。有没有简单的方法来清除.txt文件中的一行,我可以先打电话给php? 发生了什么事情的例子 - 比方说,我正在存储最喜欢的作曲家,并且一个用户在他们的.txt文件中有“Beethoven”,并且当我用“Mozart”将fwrite改写为“Mozart”时, “,我正在把”莫扎特文“作为新的路线。我在fopen调用中使用“r +”,因为我只想一次替换一行。使用php替换一个.txt文件的单行使用php
1
A
回答
0
这是我前段时间从文件中删除行的代码,它必须修改。另外,如果新线比旧线短,它将正常工作,对于更长的线,将需要进行重大修改。
关键是第二个while循环,其中更改后文件的所有内容都被重写到文件中的正确位置。
<?php
$size = filesize('test.txt');
$file = fopen('test.txt', 'r+');
$lineToDelete = 3;
$counter = 1;
while ($counter < $lineToDelete) {
fgets($file); // skip
$counter++;
}
$position = ftell($file);
$lineToRemove = fgets($file);
$bufferSize = strlen($lineToRemove);
while ($newLine = fread($file, $bufferSize)) {
fseek($file, $position, SEEK_SET);
fwrite($file, $newLine);
$position = ftell($file);
fseek($file, $bufferSize, SEEK_CUR);
}
ftruncate($file, $size - $bufferSize);
echo 'Done';
fclose($file);
?>
1
如果此配置数据不需要提供给非PHP应用程序,可以考虑使用var_export()
代替。它基本上是var_dump/print_r,但输出变量作为可解析的PHP代码。这将您的代码降低到:
include('config.php');
$CONFIG['musician'] = 'Mozart';
file_put_contents('config.php', '<?php $CONFIG = ' . var_export($CONFIG, true));
相关问题
- 1. 使用php删除txt文件一行一行使用php
- 2. 使用PHP替换txt文件中的区域
- 3. 用文件替换c:\:\\\ c |使用PHP
- 4. 使用php替换文件的内容
- 5. 替换使用PHP
- 6. 替换使用PHP
- 7. 使用php将pdf文件转换为txt文件
- 8. 如何从一个.txt文件使用的preg_match在PHP
- 9. 使用php导入一个txt文件到postgres时的问题
- 10. 使用坐标PHP从txt文件
- 11. 使用php替换pdfs
- 12. 使用preg_replace替换php
- 13. 删除一行并用txt文件中的新文本替换
- 14. 如何运行使用按钮一个单独的PHP文件
- 15. 用PHP写入TXT文件,想要添加一个实际的换行符
- 16. 用php读取txt文件
- 17. 使用php替换部分的xml使用php
- 18. 使用PHP上传一个文件夹通过FTP使用PHP
- 19. 可能使用PEAR SearchReplace替换.php文件中的文本?
- 20. 使用PHP替换XML文件中的文本?
- 21. 使用QFtp下载单个.txt文件
- 22. 使用Python查找和替换子文件夹/ TXT使用CSV文件3
- 23. 替换txt文件中的整行
- 24. 如何开始使用PHP从指定行读取txt文件?
- 25. 使用php过滤一个csv文件的文字或文本使用php
- 26. 使用PHP替换HTML页面正文中的所有链接使用PHP
- 27. 如何用另一个特殊字符替换'使用str_replace php
- 28. 使用jQuery加载一个php文件和php文件包括
- 29. 如何使用PHP在另一台PC上写入文件txt?
- 30. 用PHP替换文本
这就是我们使用数据库的原因。 – ceejayoz