формы — Использование буферизации PHP для сохранения вывода PHP в HTML в определенном каталоге

У меня есть пользовательская HTML-форма на моем сайте. При «отправке» формы я использую буферизацию PHP для сохранения вывода в виде html-файла в моей корневой директории.

В настоящее время файл успешно генерируется и сохраняется с назначенным именем страницы, которое он получает из одного из полей формы. Все идет нормально.

Следующий код прекрасно работает для достижения этой цели:

<?php
ob_start();
$headline=preg_replace('#[^_0-9a-zA-Z]#', '_', $_REQUEST['banner']);
?>
/* My 'Form Page' Content Here */
<?php
echo '';
file_put_contents($headline . '.html', ob_get_contents());

Тем не мение….

Я хотел бы включить в форму раскрывающийся селектор с различными «разделами», такими как «Новости», «Спорт», «Погода» и т. Д., Чтобы выбрать конкретную директорию (папку) на моем сервере. , поэтому сгенерированный HTML-файл будет сохранен в назначенном каталоге.

Мне нужна помощь на стороне поля формы, а также на стороне буферизации php для достижения этой цели. Я не уверен, с чего начать.

0

Решение

Добавить раскрывающийся список каталогов:

<select name="directory">
<option value="news">News</option>
<option value="sports">Sports</option>
...
</select>

Затем используйте это как часть каталога имени файла в сценарии:

$dir = $_REQUEST['directory'];
$valid_directories = array('news', 'sports', 'weather', ...);
if (!in_array($dir, $valid_directories)) {
die("Invalid directory");
}
file_put_contents("$dir/$headline.html", ob_get_contents());
0

Другие решения

Других решений пока нет …