buffering — справка по буферизации PHP. Создание предварительно названной HTML-страницы

Я пытаюсь использовать функцию буферизации вывода php для создания новой html-страницы после отправки пользовательской формы.

Я исследовал это здесь, и нашел помощь с этим ответом в другой теме …. https://stackoverflow.com/a/3775302/7637995.

Этот совет помог мне создать HTML-страницу на моем сервере.

Тем не менее, мне нужно сделать еще один шаг, и пока я не нашел способ сделать это.

Как я уже говорил … с помощью кода, предоставленного в этом ответе и встроенного в мою страницу PHP … я смог создать новую страницу HTML со всеми данными моей формы без изменений на моем сервере, установив «имя» html-страницы, чтобы «Mydocument» вроде так …

    <?php ob_start(); ?>
/* My 'Form Page' Content Here */
<?php echo '';
file_put_contents('Mydocument.html', ob_get_contents());
?>.

Однако … вместо того, чтобы заранее называть одноразовую html-страницу, жестко кодируя ее каждый раз … Я хотел бы знать, возможно ли иметь саму форму, автоматически генерировать имя для новой целевой HTML-страницы каждый раз при отправке формы. Возможно, на основе входных данных из одного из полей текстовой формы.

В форме, например … У меня есть поле с именем «баннер». Текст, введенный в это поле, в конечном итоге становится заголовком статьи на html-странице.

Итак … Мне было интересно, могут ли данные в этом поле ‘banner’ также использоваться для автоматического создания ‘name’ для целевой html-страницы.

Поэтому вместо того, чтобы мне приходилось кодировать «имя» для целевой HTML-страницы, например; «Mydocument.html» (или что-то еще) … форма автоматически создаст имя для этой HTML-страницы при отправке.

Например … если мой заголовок (введенный в поле «баннер» формы)

«Гигантский астероид, чтобы ударить Землю»

К тому времени, когда генерируется код PHP, он может выглядеть примерно так …

    <?php ob_start(); ?>
/* My 'Form Page' Content Here */
<?php echo '';
file_put_contents('Giant%Asteroid%To%Hit%Earth.html'
, ob_get_contents());
?>.

Если кто-нибудь может помочь мне с этим … это было бы очень ценно.

0

Решение

<?php
ob_start();
$headline=str_replace('.', '_', basename($_REQUEST['banner']));
?>
/* My 'Form Page' Content Here */
<?php echo '';
file_put_contents($headline . '.html'
, ob_get_contents());

Здесь следует отметить пару вещей: функция basename устраняет множество проблем с безопасностью. И я удалил лишнее закрытие ‘?>’

0

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector