繁体   English   中英

删除一行并替换为txt文件中的新文本

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM