gpt4 book ai didi

php - 关于 PHP 中的文件指针

转载 作者:搜寻专家 更新时间:2023-10-31 21:09:08 25 4
gpt4 key购买 nike

我刚刚在培训 PHP。关于下面的代码,我从文件中读取一个时间表,如果文件中有给定的行 number($lineNo) 则覆盖或删除。

那我有一个问题。是当一个文件指针被更新时fwrite函数已经执行了吗?

<?php
$filename = "sample.txt";
function edit($filename,$lineNo){
$new_line = "Hello";
$schedule_list = file($filename);
$fp = fopen($filename,"w");
foreach($schedule_list as $schedule_lineNo => $line){
if($schedule_lineNo == $lineNo){
if($_POST["mode"] == "overwrite"){
fwrite($fp,$new_line);
}
elseif($_POST["mode"] == "delete"){

}
else{
fwrite($fp,$line);
}
}
fclose($fp);
}
?>

最佳答案

不要把事情复杂化。由于您使用了 file() 函数,并且输入了所需的行号,因此使用该行号来指定要覆盖的数组键。示例:

$filename = "sample.txt";

function edit($filename, $lineNo){
$new_line = "Hello";
$schedule_list = file($filename, FILE_SKIP_EMPTY_LINES | FILE_IGNORE_NEW_LINES);
if(!isset($schedule_list[$lineNo-1])) {
return false;
}

if(/** overwrite **/) {
// use the line number as key and use it on the array returned by file()
$schedule_list[$lineNo - 1] = $new_line; // numeric indices start at zero
} elseif(/** delete **/) {
unset($schedule_list[$lineNo-1]);
}

file_put_contents($filename, implode("\n", $schedule_list));

return true;
}

var_dump(edit($filename, 1));

关于php - 关于 PHP 中的文件指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25498053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com