【发布时间】:2015-08-04 16:22:11
【问题描述】:
我有一个 CFG 文件,所以我需要编辑和删除行...我使用了此代码,但它不会替换行。
/* check if user exists */
$delete = "F: $username $password # { startdate=$today | enddate=$expired | info=$info | dealer=$dealer }";
$out = array();
while (($line = fgets($stream)) !== false) {
if(trim($line) != $delete) {
/* user already exists - we can edit it */
$out[] = $line;
}
}
/* write file */
$sftp = ssh2_sftp($con);
$stream = fopen("ssh2.sftp://$sftp/myurl/config/txtfile.cfg", 'w+') or die("can't open file");
flock($stream, LOCK_EX);
foreach($out as $line) {
fwrite($stream, $line);
}
flock($stream, LOCK_UN);
fclose($stream);
我在那个 txt 文件中有 100 行,我用 ajax 发送了这个:
F: lolipop shugar # { startdate=2015-08-04 |结束日期=2016-08-04 |信息=信息 |经销商=当前经销商}
所以在写回 txt cfg 文件后,它需要写入 99 行,没有以 F: lolipop 开头的行...所以该行被删除(然后我可以实现编辑行...想法是删除行F:知道用户名,然后用新数据插入一个新的)
我试过这个...文件被正确读取到数组中,但文件没有写回 txt cfg 文件并进行更改...我有 txt cfg 文件,但 100 行未更改...有人可以发布解决方案吗?
谢谢
例子:
我在文件中:
F: user010 sdfsdfsdf # { startdate=$today | enddate=$expired | info=$info | dealer=$dealer }
F: huikkd rrrrr # { startdate=$today | enddate=$expired | info=$info | dealer=$dealer }
F: robot56 uxDtpNjf # { startdate=$today | enddate=$expired | info=$info | dealer=$dealer }
所以我想找线:
F: huikkd rrrrr # { startdate=$today | enddate=$expired | info=$info | dealer=$dealer }
并将其编辑为:
F: huikkd changedpassword # { startdate=$today | enddate=$expired | info=$info | dealer=$dealer }
并将其写回cfg文件..我通过ssh2连接将文件保存在服务器上
【问题讨论】: