fwrite和隐藏符号

时间:2013-05-23 06:50:46

标签: php fwrite comma brackets

我有一个用于编辑.txt文件的应用程序。它会打开所选文件,写入文件并关闭文件。每个必须编辑的文件都有特殊字符 例如[,',=,_ ,;。`  不必编辑,因此打开文件时它们不会显示在网页上。在那些特殊字符之间存在文本即将被编辑的部分。我想要实现的是当文件被打开时,特殊的租船人将被隐藏并且文件中的字母仅被显示,这是我想要的扭曲实现是在保存文件时,特殊承租人仍然会在原始位置的编辑文本的文件中。文件中的所有内容都是这样的

['text'] = ['some_,more_text']

目前我正在使用explode();函数和str_replace()函数 但到目前为止,我只能删除特殊的租船人,当文件被保存时,字符不会随文本一起保存。

我是否有一些功能或方法可以达到我的目标,我的目标是任何重播都非常感谢

我仍在浏览php手册,但无法从explode()str_replace().

找到任何我需要的东西。

这是我的代码我使用它来打开我的文件:

$fileHandle = fopen($relPath, 'r') or die("Failed to open file $relPath go and make me a sandwich! ");

echo '<form action="updatefile.php" method="post">';

while(!feof($fileHandle))
    {
    $line = fgets($fileHandle);
    $lineArr = explode('=', $line);

    if (count($lineArr) !=2){

       continue;
    }
    $part1 = trim($lineArr[0]);
    $part2 = trim($lineArr[1]);

    //$simbols = array("$", "[", "]", "'", ";");

  //echo "<pre>$part1 $part2</pre>";

           echo '<pre><input type="text" name="content_prt1[]" size="50" value="' .str_replace($simbols, "",$part1).'"> <input type="text" name="content_prt2[]" size="50" value="' .str_replace($simbols, "",$part2).'"></pre>';
    }
    echo '<input type="submit" value="Submit" name="submit1">';
    echo '<form />';

  fclose($fileHandle) or die ("Error closing file!");

这是写入文件的那个:

if(isset($_POST['submit1'])){
    ini_set('auto_detect_line_endings', TRUE);

    $file = "test_file_1.php";

    if(is_file($file))
    {
        $handle = fopen($file, "w") or die ("Error opening file! {$file}");
    }
    else
    {
        die($file . ' Dose Not Exist!');
    }

    $content_prt1 = $_POST['content_prt1'];
    $content_prt2 = $_POST['content_prt2'];

    $data = '';

    foreach ($content_prt1 as $key => $value) {
        $data .= $value . " = ". $content_prt2[$key]. PHP_EOL;
    }

    //$file_contents = $_POST["content_prt1" . "content_prt1"];

    fwrite($handle, $data) or die ("Error writing to file {$file}!");
    fclose($handle) or die("Error closing file!");

     header( 'Location:../index.php' ) ;

}

1 个答案:

答案 0 :(得分:2)

您无法找到执行此操作的功能或类。 你想要存档的内容比看起来要复杂得多。

假设您从just+a=sample开始并显示just a sample

用户将其更改为what特殊字符应放在哪里?

+what=+=whatwhat+=都是有效的解决方案。

您有三种选择:

  1. 使用许多小文本区域(丑陋
  2. 使用javascript创建您自己的“textare”并跟踪用户光标位置(非常糟糕的主意
  3. 创建一个复杂且容易出错的逻辑来比较编辑之前和之后的字符串
  4. 通常我讨厌如果人们发布“不要这样做”答案,但我认为没有机会通过可靠的努力来解决这个问题。

    祝你好运我希望你能找到一种解决办法或不同的方法。