[英]delete a line and replace with new text in a txt file
我有一个包含 20 行的 txt 文件,我想用输入中的新文本替换第 4 行……我已经尝试过这个和其他一些,但没有解决我的问题。 PHP代码
<?php
if(isset($_POST['submit'])){
$selected_file = $_POST['files'];
$line = $_POST['to_line'];
$text = $_POST['text'];
//opn file
$file_open = fopen($selected_file,"r+") or die('Fail to open a file');
//fwrite($file_open,$text);
$file_array = file($selected_file);
$file_array[$line] = $text;
$file_array = implode($file_array);
file_put_contents($selected_file,$file_array);
?>
HTML
<form name="write" method="post" action="">
<table>
<tr><td>Select File</td><td><select name="files" style="width:183px;">
<?php
foreach ($a = scandir('.') as $file){
$extension = pathinfo($file, PATHINFO_EXTENSION);
if($extension == 'txt' || $extension == 'doc'){
echo"<option>".$file."</option>";
}}
?>
></select></td></tr>
<tr><td>Line</td><td><select name="to_line" style="width:183px">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
</select>
</td></tr>
<tr><td>Write Text</td><td><textarea name="text" style=" height:120px" ></textarea></td></tr>
<tr><td></td><td><input type="submit" name="submit" value="Save" /></td></tr>
</table>
</form>
我想要什么我想从下拉列表(行#)中选择一个值,整行将替换为新文本。
尝试以下解决方案还确保文件具有写权限:
if(isset($_POST['submit'])) {
$selected_file = $_POST['files'];
$line = $_POST['to_line'];
$text = $_POST['text'];
$file_array = file($selected_file);
$file_array[$line - 1] = $text."\n";
$file_content = implode("", $file_array);
$f = fopen($selected_file, 'w+') or die('unable to open');
fwrite($f, $file_content);
fclose($f);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.