我计划为我的新网站制作一个非常简单的发布页面。它将由html文件创建。
就像wordpress的发布后页面一样,会有输入字段,如"标题","内容"以及一些用于输入页面元数据的额外字段。当我点击发布按钮时,脚本将创建一个类似" title.html"的文件。并且内容将包含一些其他模板文件和从发布页面发送的数据。我创建的发布页面的基本代码如下;
<form action="post.php" method="POST">
<table><tr><td>Title:</td><td><input type="text" name="title" /></td></tr>
<tr><td>Content to be added</td><td><textarea required="required" name="content"style="width: 600px; height: 138px;"/></textarea></td></tr></table>
<input class="submit" type="submit" value="Confirm »" />
</form>
和post.php就是这样;
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<?php
$content = $_POST['content'];
$title = $_POST['title'];
$my_file1 = 'file1.html';
$handle = fopen($my_file1, 'r');
$data1 = fread($handle,filesize($my_file1));
$my_file2 = 'file2.html';
$handle = fopen($my_file2, 'r');
$data2 = fread($handle,filesize($my_file2));
$data3 = $data1.$content.$data2;
$my_file3 = $title;
$handle = fopen($my_file3, 'w') or die('Cannot open file: '.$my_file3);
fwrite($handle, $data3);
fclose($handle);
?>
file1.html;
的内容<html>
<head>
<codes>
</head>
<body>
<div id="content">
file2.html的内容;
</div>
<codes>
</body>
</html>
创建的文件$ title.html就是这样;
<html>
<head>
<codes>
</head>
<body>
<div id="content">$content</div>
<codes>
</body>
</html>
我想知道是否可以使用一个文件(只有file1.html而不是file2.html)来管理它。我的意思是脚本将读取file1.html的内容,找到id = content并将$ content放在这个标签之间。这可能吗?
谢谢。
编辑:
当我在Andrey B的帮助下找到解决方案时,我想在此发布;
<?php
$title = $_POST['title'];
$description = $_POST['description'];
$keywords = $_POST['keywords'];
$intro = $_POST['intro'];
$content = $_POST['content'];
$file = $_POST['file'];
$my_file1 = 'post2.html';
$handle = fopen($my_file1, 'r');
$data1 = fread($handle,filesize($my_file1));
$data3 = sprintf($data1, $title, $description, $keywords, $intro, $content);
$my_file3 = $file;
$handle = fopen($my_file3, 'w') or die('Cannot open file: '.$my_file3);
fwrite($handle, $data3);
fclose($handle);
?>
答案 0 :(得分:0)
是的,你可以使用require_once来实现它:
<?php require_once("file1.php") ?>
<?php echo $content ?>
<?php require_once("file2.php"); ?>
以这种方式使用它以在多个部分文件中创建布局非常常见。
http://php.net/manual/es/function.require-once.php
您也可以使用include,但我建议您更好地使用require_once作为最佳做法。
答案 1 :(得分:0)
您可以使用sprintf:
$template = "<div>%s</div>";
$data = 'Hi, World!';
$text = sprintf($template, $data); # <div>Hi, World!</div>