提交按钮以创建 HTML 文件并输入文本
Submit button to create HTML file with text entered
我们在我工作的地方的厨师正在尝试找出一种简单(有点花哨)的方式来将菜单发布给员工查看。我已经构建了一个表单,因此他可以在周一至周五进入菜单,但我需要一些帮助来创建菜单。
我希望厨师能够访问这个让他输入菜单所有信息的网站(已构建的表格)。一旦他输入信息,他点击提交并创建一个 HTML 文件,该文件已经用背景图像和字体设计好了,但我需要他输入的文本转置到那里。
我从我目前拥有的表格中获取了这些信息,该表格在输入数据后通过电子邮件发送给我们的人力资源部门。我知道它与 php 作品有关,我什至不确定这是否可能。
这是我的表格,我想我只需要 php 信息
<head>
<title>Cafe Menu Creator</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" type="text/css" href="cafe.css" />
</head>
<body>
<br />
<br />
<center><h1>Cafe Menu Creator</h1></center>
<div id="page-wrap">
<div id="contact-area">
<form method="post" action="cafe.php">
<label for="Name">Monday:</label>
<textarea name="Message_Monday" rows="20" cols="20" id="Message_Monday"></textarea>
<label for="Name">Tuesday:</label>
<textarea name="Message_Tuesday" rows="20" cols="20" id="Message_Tuesday"></textarea>
<label for="Name">Wednesday:</label>
<textarea name="Message_Wednesday" rows="20" cols="20" id="Message_Wednesday"></textarea>
<label for="Name">Thursday:</label>
<textarea name="Message_Thursday" rows="20" cols="20" id="Message_Thursday"></textarea>
<label for="Name">Friday:</label>
<textarea name="Message_Friday" rows="20" cols="20" id="Message_Friday"></textarea>
<input type="submit" name="submit" value="Submit" class="submit-button" />
</form>
<div style="clear: both;"></div>
</div>
</div>
</body>
</html>
PHP:
<?php
$MessageMonday = $_POST['Message_Monday'];
$MessageTuesday = $_POST['Message_Tuesday'];
$MessageWednesday= $_POST['Message_Wednesday'];
$MessageThursday = $_POST['Message_Thursday'];
$MessageFriday = $_POST['Message_Friday'];
ob_start();
?>
<div>
<html>
<body bgcolor=red>
</div>
<div><?php echo $MessageMonday; ?></div>
<div><?php echo $MessageTuesday; ?></div>
<div><?php echo $MessageWednesday; ?></div>
<div><?php echo $MessageThursday; ?></div>
<div><?php echo $MessageFriday; ?></div>
<?php
$html = ob_get_contents();
ob_end_clean();
$path = '/var/www/web1/web/';
$filename = "menu.html";
file_put_contents($path.$filename);
?>
首先,我会将您的输入名称更改为独特的名称,例如 message_friday
或 message[]
而不仅仅是 message
并且此 php 代码应该可以工作,您仍然需要对路径和文件名进行一些修改并插入您自己的 html.
<?php
$messageMonday = $_POST['message_monday'];
$messageFriday = $_POST['message_friday'];
$html = "";
ob_start();
?>
<div>Your html stuff</div>
<div><?php echo $messageMonday; ?></div>
. . .
<?php
$html = ob_get_contents();
ob_end_clean();
$path = "/path/to/file/";
$filename = "file_".rand(0,9999).".html";
file_put_contents($path.$filename, $html);
?>
如果你愿意,你可以把它包装成一个函数,returns 新的 Url :)
我不会重新输入我已经完成调试的评论。
以下是最终代码的内容,我修复了 HTML 标记中的一些错误。
HTML
<!doctype html>
<head>
<title>Cafe Menu Creator</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" type="text/css" href="cafe.css" />
</head>
<body>
<br />
<br />
<center><h1>Cafe Menu Creator</h1></center>
<div id="page-wrap">
<div id="contact-area">
<form method="post" action="cafe.php">
<label for="Name">Monday:</label>
<textarea name="Message_Monday" rows="20" cols="20" id="Message_Monday"></textarea>
<label for="Name">Tuesday:</label>
<textarea name="Message_Tuesday" rows="20" cols="20" id="Message_Tuesday"></textarea>
<label for="Name">Wednesday:</label>
<textarea name="Message_Wednesday" rows="20" cols="20" id="Message_Wednesday"></textarea>
<label for="Name">Thursday:</label>
<textarea name="Message_Thursday" rows="20" cols="20" id="Message_Thursday"></textarea>
<label for="Name">Friday:</label>
<textarea name="Message_Friday" rows="20" cols="20" id="Message_Friday"></textarea>
<input type="submit" name="submit" value="Submit" class="submit-button" />
</form>
<div style="clear: both;"></div>
</div>
</div>
</body>
</html>
PHP
<?php
$MessageMonday = $_POST['Message_Monday'];
$MessageTuesday = $_POST['Message_Tuesday'];
$MessageWednesday= $_POST['Message_Wednesday'];
$MessageThursday = $_POST['Message_Thursday'];
$MessageFriday = $_POST['Message_Friday'];
ob_start();
?>
<html>
<body bgcolor="red">
<div>
Menu
</div>
<div><?php echo $MessageMonday; ?></div>
<div><?php echo $MessageTuesday; ?></div>
<div><?php echo $MessageWednesday; ?></div>
<div><?php echo $MessageThursday; ?></div>
<div><?php echo $MessageFriday; ?></div>
</body>
</html>
<?php
$html = ob_get_contents();
ob_end_clean();
$path = '/path/to/folder/';
$filename = "menu.html";
file_put_contents($path.$filename, $html);
?>
脚注:
如果你想避免 HTML (and/or PHP) 标签,例如 <b></b>
等,你可以使用 strip_tags()
来对抗你的 POST数组。
$MessageMonday = strip_tags($_POST['Message_Monday']);
$MessageTuesday = strip_tags($_POST['Message_Tuesday']);
$MessageWednesday= strip_tags($_POST['Message_Wednesday']);
$MessageThursday = strip_tags($_POST['Message_Thursday']);
$MessageFriday = strip_tags($_POST['Message_Friday']);
参考:
但是,如果您确实想添加 HTML 标签以使 粗体 文本(即时),您只需输入 <b>Today's menu</b>
后跟任何其他有效的 HTML.
参考:
甚至 HTML table(即时):
<table border="1" width="100%">
<tr>
<td width="100%" colspan="2" bgcolor="#99CCFF">
<p align="center"><b>Today's menu</b></td>
</tr>
<tr>
<td width="50%" bgcolor="#FFFFFF">Fish and chips</td>
<td width="50%" bgcolor="#FFFFFF">.95</td>
</tr>
<tr>
<td width="50%" bgcolor="#FFFFFF">Hamburger</td>
<td width="50%" bgcolor="#FFFFFF">.25</td>
</tr>
<tr>
<td width="50%" bgcolor="#FFFFFF">Cheeseburger</td>
<td width="50%" bgcolor="#FFFFFF">.50</td>
</tr>
</table>
我们在我工作的地方的厨师正在尝试找出一种简单(有点花哨)的方式来将菜单发布给员工查看。我已经构建了一个表单,因此他可以在周一至周五进入菜单,但我需要一些帮助来创建菜单。
我希望厨师能够访问这个让他输入菜单所有信息的网站(已构建的表格)。一旦他输入信息,他点击提交并创建一个 HTML 文件,该文件已经用背景图像和字体设计好了,但我需要他输入的文本转置到那里。
我从我目前拥有的表格中获取了这些信息,该表格在输入数据后通过电子邮件发送给我们的人力资源部门。我知道它与 php 作品有关,我什至不确定这是否可能。
这是我的表格,我想我只需要 php 信息
<head>
<title>Cafe Menu Creator</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" type="text/css" href="cafe.css" />
</head>
<body>
<br />
<br />
<center><h1>Cafe Menu Creator</h1></center>
<div id="page-wrap">
<div id="contact-area">
<form method="post" action="cafe.php">
<label for="Name">Monday:</label>
<textarea name="Message_Monday" rows="20" cols="20" id="Message_Monday"></textarea>
<label for="Name">Tuesday:</label>
<textarea name="Message_Tuesday" rows="20" cols="20" id="Message_Tuesday"></textarea>
<label for="Name">Wednesday:</label>
<textarea name="Message_Wednesday" rows="20" cols="20" id="Message_Wednesday"></textarea>
<label for="Name">Thursday:</label>
<textarea name="Message_Thursday" rows="20" cols="20" id="Message_Thursday"></textarea>
<label for="Name">Friday:</label>
<textarea name="Message_Friday" rows="20" cols="20" id="Message_Friday"></textarea>
<input type="submit" name="submit" value="Submit" class="submit-button" />
</form>
<div style="clear: both;"></div>
</div>
</div>
</body>
</html>
PHP:
<?php
$MessageMonday = $_POST['Message_Monday'];
$MessageTuesday = $_POST['Message_Tuesday'];
$MessageWednesday= $_POST['Message_Wednesday'];
$MessageThursday = $_POST['Message_Thursday'];
$MessageFriday = $_POST['Message_Friday'];
ob_start();
?>
<div>
<html>
<body bgcolor=red>
</div>
<div><?php echo $MessageMonday; ?></div>
<div><?php echo $MessageTuesday; ?></div>
<div><?php echo $MessageWednesday; ?></div>
<div><?php echo $MessageThursday; ?></div>
<div><?php echo $MessageFriday; ?></div>
<?php
$html = ob_get_contents();
ob_end_clean();
$path = '/var/www/web1/web/';
$filename = "menu.html";
file_put_contents($path.$filename);
?>
首先,我会将您的输入名称更改为独特的名称,例如 message_friday
或 message[]
而不仅仅是 message
并且此 php 代码应该可以工作,您仍然需要对路径和文件名进行一些修改并插入您自己的 html.
<?php
$messageMonday = $_POST['message_monday'];
$messageFriday = $_POST['message_friday'];
$html = "";
ob_start();
?>
<div>Your html stuff</div>
<div><?php echo $messageMonday; ?></div>
. . .
<?php
$html = ob_get_contents();
ob_end_clean();
$path = "/path/to/file/";
$filename = "file_".rand(0,9999).".html";
file_put_contents($path.$filename, $html);
?>
如果你愿意,你可以把它包装成一个函数,returns 新的 Url :)
我不会重新输入我已经完成调试的评论。
以下是最终代码的内容,我修复了 HTML 标记中的一些错误。
HTML
<!doctype html>
<head>
<title>Cafe Menu Creator</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" type="text/css" href="cafe.css" />
</head>
<body>
<br />
<br />
<center><h1>Cafe Menu Creator</h1></center>
<div id="page-wrap">
<div id="contact-area">
<form method="post" action="cafe.php">
<label for="Name">Monday:</label>
<textarea name="Message_Monday" rows="20" cols="20" id="Message_Monday"></textarea>
<label for="Name">Tuesday:</label>
<textarea name="Message_Tuesday" rows="20" cols="20" id="Message_Tuesday"></textarea>
<label for="Name">Wednesday:</label>
<textarea name="Message_Wednesday" rows="20" cols="20" id="Message_Wednesday"></textarea>
<label for="Name">Thursday:</label>
<textarea name="Message_Thursday" rows="20" cols="20" id="Message_Thursday"></textarea>
<label for="Name">Friday:</label>
<textarea name="Message_Friday" rows="20" cols="20" id="Message_Friday"></textarea>
<input type="submit" name="submit" value="Submit" class="submit-button" />
</form>
<div style="clear: both;"></div>
</div>
</div>
</body>
</html>
PHP
<?php
$MessageMonday = $_POST['Message_Monday'];
$MessageTuesday = $_POST['Message_Tuesday'];
$MessageWednesday= $_POST['Message_Wednesday'];
$MessageThursday = $_POST['Message_Thursday'];
$MessageFriday = $_POST['Message_Friday'];
ob_start();
?>
<html>
<body bgcolor="red">
<div>
Menu
</div>
<div><?php echo $MessageMonday; ?></div>
<div><?php echo $MessageTuesday; ?></div>
<div><?php echo $MessageWednesday; ?></div>
<div><?php echo $MessageThursday; ?></div>
<div><?php echo $MessageFriday; ?></div>
</body>
</html>
<?php
$html = ob_get_contents();
ob_end_clean();
$path = '/path/to/folder/';
$filename = "menu.html";
file_put_contents($path.$filename, $html);
?>
脚注:
如果你想避免 HTML (and/or PHP) 标签,例如 <b></b>
等,你可以使用 strip_tags()
来对抗你的 POST数组。
$MessageMonday = strip_tags($_POST['Message_Monday']);
$MessageTuesday = strip_tags($_POST['Message_Tuesday']);
$MessageWednesday= strip_tags($_POST['Message_Wednesday']);
$MessageThursday = strip_tags($_POST['Message_Thursday']);
$MessageFriday = strip_tags($_POST['Message_Friday']);
参考:
但是,如果您确实想添加 HTML 标签以使 粗体 文本(即时),您只需输入 <b>Today's menu</b>
后跟任何其他有效的 HTML.
参考:
甚至 HTML table(即时):
<table border="1" width="100%">
<tr>
<td width="100%" colspan="2" bgcolor="#99CCFF">
<p align="center"><b>Today's menu</b></td>
</tr>
<tr>
<td width="50%" bgcolor="#FFFFFF">Fish and chips</td>
<td width="50%" bgcolor="#FFFFFF">.95</td>
</tr>
<tr>
<td width="50%" bgcolor="#FFFFFF">Hamburger</td>
<td width="50%" bgcolor="#FFFFFF">.25</td>
</tr>
<tr>
<td width="50%" bgcolor="#FFFFFF">Cheeseburger</td>
<td width="50%" bgcolor="#FFFFFF">.50</td>
</tr>
</table>