替换txt文件中的某些内容并使用PHP保存


Replace certain content in txt file and save it using PHP?

所以我在txt文件的某个区域收到变量替换它并保存回来。我得到了页码,根据它我得到了分解数据。无论如何,我会在下面发布一个代码,让它更清楚:

$pgnm = $_GET['page']; //This is the page number as I've said.
$conts = file_get_contents("content.txt");

content.txt的内容如下:

text1|text2|text3

我在某些页面中显示此内容。例如,在第一页:text1,在第二页text2,等等

现在我正在制作一个表格,我成功地更改了这些。我得到了如我所说的页码和文本:

$text = "new text"; //this is the content which I want to be replaced instead of text2.

保存后,我使content.txt文件看起来像这样:text1|new text|text2

所以让我们继续:

$exp = explode("|", $conts); //this explodes data into slashes. 
$rep = str_replace($exp[$pgnm], $text, $conts);
file_put_contents("content.txt", $rep); // Saving file

上述所有操作都非常有效,但我现在的问题是。这只适用于content.txt有特定内容的情况,如果它是空的,它会输入我的新文本,仅此而已:"新文本",仅此。也许我想添加第二页内容"新文本2",在我完成输入并保存后,我希望文件显示如下:新文本|新文本2。如果content.txt的内容如下:'new-text|'str_replace不会替换空字符串。所以这也是我的另一个问题。

关于这两个问题,我什么都试过了,但都没能解决。提前感谢您的帮助!

为什么不使用$exp数组来构建内容呢。我的意思是CCD_ 2将所有块作为CCD_。因此,您只需更改或向数组添加新值(不需要str_replace())。然后使用CCD_ 5进行重建。

至于你的代码;

$exp = explode("|", $conts); //this explodes data into slashes. 
$exp[$pgnm] = $text;
file_put_contents("content.txt", implode('|',$exp)); // Saving file

使用以下代码代替str_replace:

$pgnm       = 1;
$text       = 'new text';
$conts      = 'text1||text3';
$exp        = explode('|', $conts); 
$exp[$pgnm] = $text;
$rep        = implode('|', $exp);
var_dump($rep); // string(20) "text1|new text|text3"