Обновить массив в файле
У меня есть включение с одним массивом, который содержит 3 инструкции; переключатель "y / n" и дата начала и окончания. Включать meetingParams.php
выглядит так:
<?php
$regArray = array("n","2018-03-03","2018-03-07");
?>
Я хочу обновлять эти значения массива время от времени, используя веб-форму. Я застрял в том, чтобы найти правильный синтаксис для этого. Прямо сейчас у меня есть следующее:
$registration = $_POST['registration'];
$startMeeting = $_POST['startMeeting'];
$endMeeting = $_POST['endMeeting'];
$replace = array($registration, $startMeeting, $endMeeting);
$search = file_get_contents('includes/meetingParams.php');
$parsed = preg_replace('^$regArray.*$', $replace, $search);
file_put_contents("includes/meetingParams.php", $parsed);
Когда я запускаю этот код, файл meetingParams.php
get заменяется пустым файлом. Что мне не хватает?
2 ответа
Решение
Это должно работать нормально:
$content = '<?php
$regArray = array("'.$registration.'","'.$startMeeting.'","'.$endMeeting.'");
?>';
file_put_contents("includes/meetingParams.php", $content);
Попробуй это.
include_once "includes/meetingParams.php";
$registration = $_POST['registration'];
$startMeeting = $_POST['startMeeting'];
$endMeeting = $_POST['endMeeting'];
$regArray = array($registration, $startMeeting, $endMeeting);
объяснение
Там нет необходимости использовать file_get_contents
Поскольку вы используете файл PHP, вы можете просто включить его.
Это означает, что вы помещаете этот файл в свой скрипт. Тогда нет необходимости использовать RegEx для замены массива, просто переназначьте его значение.