我有一个用于编辑 .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' ) ;
}