如何从php表单在本地目录中创建静态页面



我想创建一个php表单页面。提交后,它会在web服务器的本地目录中自动创建一个html静态页面,其中包含已填充的表单数据。请告诉我我该怎么做。

由于每次在textarea中编写html、meta标签等都很困难。。。。

因此,创建一个模板文件,然后将其用作基础,最后只编辑正文和标题标签(你可以做更多(,这会让生活变得更轻松。。。

首先,我们需要创建file.php,它利用了创建新文件和注入所有代码的所有逻辑(使用创建新文件的php方法fopen和将所有数据放入其中的file_put_contents(。

其次,我们创建了一个模板文件,所有样板文件都将从中用完。(包含一些变量,如{BODY}(。

最后,我们通过填写表单来使用file.php,并获取所有必需的输入(获取所有输入,并使用循环更改输入的所有模板变量(。

file.php

<?php
if ($_SERVER["REQUEST_METHOD"] === "POST") {
if (isset($_POST['filename'])) {
$body = $_POST['body'];
$title = $_POST['title'];
$swap_var = array(
"{BODY}" => $body,
"{TITLE}" => $title
);
$template = "template.php";
if (file_exists($template)) {
$html = file_get_contents($template);
} else {
die ("Unable to locate your template file");
}
foreach (array_keys($swap_var) as $key) {
if (strlen($key) > 2 && trim($swap_var[$key]) != '')

$html = str_replace($key, $swap_var[$key], $html);
}
$filename = $_POST['filename'];
if (!file_exists($filename)) {
fopen($filename, "w");
}
file_put_contents($filename , $html);
}
}
?>


<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width">
<title>Creating and adding text in File</title>
<style type="text/css" media="all">
input , textarea {
width: 100% ;
}
body{
padding: 10%;
}
</style>
</head>
<body>
<form action="file.php" method="post" accept-charset="utf-8">
<input type="text" name="filename" id="filename" placeholder="Enter Filename (with extension like .html)" />
<br>
<br>
<input type="text" name="title" id="title" placeholder="title" />
<br>
<br>
<textarea name="body" id="body" rows="8" placeholder="enter body"></textarea>
<br>
<br>
<button type="submit">Create New html file</button>
</form>
</body>
</html>

template.php

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width , initial-scale=1.0">
<title>{TITLE}</title>
</head>
<body>
{BODY}
</body>
</html>

请确保在同一目录中创建这两个文件,并注意此代码将在与这两个文件夹相同的目录中生成所有新文件,请记住,您可以随时更改生成新文件的位置。

您可以使用类似示例的php文件函数。

$myfile = fopen("WHATEVER_THE_FILENAME_YOU_WANT.html", "w") or die("Unable to open file!");
$data = """
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
</head>
<body>
ECHO YOUR FORM DATA HERE.
</body>
</html>
""";
fwrite($myfile, $data);
fclose($myfile);

最新更新