php - 如何在 PHP 中使用其编号将一行替换为另一行
问题描述
希望你做得很好,我正在尝试实现一个脚本,以便我可以使用它来替换文件中的另一行,我尝试了很多 PHP 脚本和 Bash 代码,但它们似乎都失败了,这是我最后尝试的:
function replace_a_line() {
$line=3; //includes zero as 1.
$newdata='this is a test 123';
$data=file('./txt.txt');
$data[$line]=$newdata."\r\n";
$data=implode($data);
file_put_contents('./txt.txt',$data);
}
我的文件名是txt.txt
先感谢您
解决方案
我想你几乎做到了。无需自己内爆。file_put_contents
为你做。添加其他检查以确保行号在行数范围内或将文本附加到末尾。
<?php
function replace_a_line($line = 3,$new_str = 'Your text') {
$data = file('test.txt');
if($line >= count($data)) $data[] = $new_str;
else $data[ $line - 1] = $new_str . "\n";
return file_put_contents('test.txt', $data, LOCK_EX);
}
replace_a_line();
推荐阅读
- java - 从 Maven exec 连接到 MongoDB 失败,但不是从 jar
- kotlin - 如何在文件路径中运行带有空格的 bat 文件?
- google-cloud-firestore - 带有绑定的VuexFire同步不起作用
- c# - 在 C# 中迭代 spark 数据框列
- palantir-foundry - 是否可以通过 Foundry 中的编辑表单的派生值来更改对象的标题属性?
- rpg - Miworkplace:发生错误。查看日志文件 (RPG)
- javascript - 如何找到具有 Id 和 token 值的网站?
- scala - scala3 扩展方法类型参数
- php - PHP sendmail 有效,但作为 Cronjob 失败:“sh: 1: /usr/sbin/sendmail: not found”
- c++ - 打印链表中结构的元素时出现C++分段错误