所以,我有一个基于用户输入将数据写入文件的代码。基本上用户选择提交时写入文件的日期和锻炼。当我尝试设置它以检查文件中是否已存在字符串(日期)时,我无法使其工作以替换现有行。
将用户输入写入文件的当前代码:
<?php
include 'index.php';
$pickdate = $_POST['date'];
$workout = $_POST['workout'];
$date = ' \''.$pickdate .'\' : \'<a href="../routines/'.$workout.'" target="_blank"><span>'.basename($workout,'.txt').'</span></a>\',' .PHP_EOL;
$file = 'test.js';
// Open the file to get existing content
$current = file_get_contents($file);
// Append a new workout to the file
$current .= $date;
$current = preg_replace('/};/', "", $current);
$current = $current.'};';
// Write the contents back to the file
file_put_contents($file, $current);
header("location:index.php");
?>
我的尝试是使用 if 语句,但我再次无法编写将用 if 存在替换该行的代码。这就是我所拥有的:
<?php
include 'index.php';
$pickdate = $_POST['date'];
$workout = $_POST['workout'];
$date = ' \''.$pickdate .'\' : \'<a href="../routines/'.$workout.'" target="_blank"><span>'.basename($workout,'.txt').'</span></a>\',' .PHP_EOL;
$file = 'test.js';
// Open the file to get existing content
$current = file_get_contents($file);
if (strpos($current, ' \''.$pickdate .'\'') ) {
#here is where I struggle#
}
else {
// Append a new workout to the file
$current .= $date;
$current = preg_replace('/};/', "", $current);
$current = $current.'};';
// Write the contents back to the file
file_put_contents($file, $current);
}
header("location:index.php");
?>
目前它正在这样做
08-04-2014 : Chest
08-05-2014 : Legs
08-04-2014 : Back
我要这个
现在,当用户再次选择 8 月 4 日时,该行将被替换为新的/相同的锻炼选择,具体取决于用户选择的内容。
08-04-2014 : Back
08-05-2014 : Legs
有人可以帮助我努力完成这项工作的部分。非常感谢你。