仅列出目录中的文本文件并编辑每个文本文件

时间:2013-05-18 00:46:05

标签: php post

我需要能够列出目录中的所有文本文件,然后才能编辑每个单独的文本文件。每个文本文件只有一行(50个字符)。下面的代码将列出文本文件以及图像。我只需要编辑文本文件。

foreach (glob("thumb/*.{txt}",GLOB_BRACE) as $filetxt) {
    $desc = file_get_contents($filetxt);
    $pics = $filetxt;
    $pic = str_replace('_alt.txt', '', $pics);

//echo $desc;   
echo '<img style="margin:0 20px 7px;" src="'.$pic.'" /><br /><input type="radio"     name="radioid" id="'.$filetxt.'" value="'.$filetxt.'" /><input type="text" name="editit"     id="'.$filetxt.'" maxlength="50" style="width:400px; height: 20px;" value="'.$desc.'"     /><br /><br />';
}
if(isset($_POST['doedit'])){
$line=0;
$newdata=$_POST['editit'];
$datams[$line]=$newdata."\r\n";
$datams=implode($datams);
file_put_contents($filetxt,($datams));
}

2 个答案:

答案 0 :(得分:0)

您需要<form><button>

<form method="POST">

    <img ... /><br />
    <input type="radio" name="radioid" ... />
    <input type="text" name="editit" ... /><br />
    <br />

    <button type="submit">SEND</button>
</form>

服务器向您发送页面。你制作了modyfication并按下SEND。信息发送到服务器。服务器请参阅$_POST['doedit']并将信息保存到文件,然后再次向您发送相同的页面。

但是您有很多行<input>而且所有<input>需要uniq name(不是id)或相同名称但[] {{1得到<input name='editit[]' ... >$_POST['doedit'][0]等和$_POST['doedit'][1]$_POST['editit'][0]等。

答案 1 :(得分:0)

你遇到的问题不太清楚。你的文件中有一个表单元素,就像furas指出的那样。你能提交表格吗?最后,你有任何错误吗?

除此之外,查看代码,第14行的$filetxt变量在这种情况下超出范围,因为保存内容的第二个代码块位于foreach循环之外。我认为它应该具有通过单选按钮选择的文件的名称?

在这种情况下,您必须获取所选单选按钮“radioid”的POST值,其中包含将保存数据的文件的名称。

这应该是这样的:

  ...
    $filetxt = $_POST['radioid'];
    file_put_contents($filetxt,($datams));
  }

以上只是问题的一部分,你仍然需要像furas指出的那样解决重复的名称问题。