【发布时间】:2016-06-22 08:06:38
【问题描述】:
我有一个包含 20 行的 txt 文件,我想用输入中的新文本替换第 4 行...我尝试了this 和其他一些但没有解决我的问题。 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>
我想要什么 我想从下拉列表(第 # 行)中选择一个值,整行将替换为新文本。
【问题讨论】:
-
到底哪里失败了?你调试过源代码吗?
-
它只是将文本添加到行尾。我想用新文本替换整行。
-
因为您将 [0] 与 [5] 内爆,并且由于它只有 2 个项目,所以它添加到最后,您需要在将数据分配给某个元素之前分解文件。另请注意,[4] 并不表示第 4 行,而是第 5 行。
-
这段代码不起作用...给我另一个代码示例来解决它...如果可能的话。!!!