我正在玩一个随机笑话生成器,它会加载一个随机的 html 页面带着一些蹩脚的笑话。现在索引页如下所示:
<!DOCTYPE html>
<html>
<head><title>Jokes</title>
<link rel="stylesheet" type="text/css" href="styles.css">
<script>
function runme() {
var arr = ["joke1.html", "joke2.html", "joke3.html"];
var value = arr[Math.floor(Math.random() * arr.length)];
window.location = value;
}
</script>
</head>
<body>
<h1>JOKES</h1>
<div class="jokebtn">
<input id="nyjoke" type="button" onclick="runme()" value="Make me laugh!" />
</div>
</body>
</html>
当您按下按钮时,它会将您重定向到 javascript 数组中定义的随机 html 页面。
我的问题是,如何从文本文档中生成包含笑话(只是一个带有一些文本的<p>
)的 HTML 页面?我希望能够在文本文件中添加笑话,然后从中生成HTML页面,而不是为我想添加的每个页面复制/粘贴<p>
。此外,页面应该是静态的(即 joke2.html总是有相同的笑话),因此您可以保存链接/笑话以供以后使用。
我正在考虑像 python 的 yattag 这样的东西,但我相信有一个更简单的解决方案。也许是php?任何帮助非常感谢!
<?php
$jokes_file = getcwd() . "/jokes.txt";
$jokes = preg_split('/'r'n|'n|'r/', trim(file_get_contents($jokes_file)));
$joke_num = rand(0, count($jokes)-1);
$joke = $jokes[$joke_num];
print $joke;
?>
getcwd() = 获取当前工作目录(对于绝对文件路径)
preg_split通过换行符分解笑话文件并将其转换为数组。
我们得到一个随机的笑话数,并做 -1 因为数组从 0 开始。
我们使用上述数字随机得到一个笑话,然后打印出来。
我建议您使用模板系统,该系统基于模板代码的参数输入呈现 html 页面。此输入可能包含任何类型的字符串或整数,因此您的 html 代码会显示您发送的输入。
例如,在您的情况下,输入可以是笑话和笑话标题。
您实际上并不需要服务器端代码来完成此任务。因此,您可以将js模板用作车把,下划线js或胡子,还有许多其他方法:
http://handlebarsjs.com/
https://mustache.github.io/
祝你好运!