【问题标题】:Generate static HTML pages with content from text file使用来自文本文件的内容生成静态 HTML 页面
【发布时间】:2016-03-07 12:10:35
【问题描述】:

我正在玩一个随机笑话生成器,它会加载一个随机的 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 页面。

我的问题是,如何从文本文档生成包含笑话的 HTML 页面(只是带有一些文本的 &lt;p&gt;)?我希望能够将笑话添加到文本文件中,然后从中生成 HTML 页面,而不是为我想添加的每个页面复制/粘贴 &lt;p&gt;。此外,页面应该是静态的(即,joke2.html 总是有相同的笑话),所以你保存链接/笑话以备后用。

我正在考虑类似 yattag for python 的东西,但我确信有一个更简单的解决方案。也许是PHP?非常感谢任何帮助!

【问题讨论】:

  • 谷歌:PHP 读取文件,Php 爆炸。数组中的 PHP 随机元素。
  • 此外,您可以利用会话和存储以前使用的笑话,以免重复自己。
  • 感谢詹姆斯的帮助,我去看看。
  • 我编写了这个代码,但有一刻在工作中分心了。

标签: javascript php jquery html


【解决方案1】:
<?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 用换行符分解笑话文件并将其转换为数组。

我们得到一个随机的笑话数,并在数组从 0 开始时做 -1。

我们使用所说的数字得到一个随机笑话,然后打印出来。

【讨论】:

  • 太棒了,再次感谢詹姆斯!绝对让我走上正确的道路:-)
【解决方案2】:

我建议您使用模板系统,该系统根据模板代码的参数输入呈现 html 页面。 此输入可能包含任何类型的字符串或整数,因此您的 html 代码会显示您发送的输入。

在您的情况下,输入可能是笑话,例如笑话标题。

您实际上并不需要执行此任务的服务器端代码。因此,您可以将 js 模板用作 handlebarsunderscorejsmustache,还有许多其他方法:

http://handlebarsjs.com/

https://mustache.github.io/

祝你好运!

【讨论】:

  • Handlebars 看起来是一个不错的解决方案,+1 用于保持客户端。谢谢卡洛斯!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-22
  • 2020-07-21
  • 2012-06-26
  • 2021-02-22
  • 1970-01-01
  • 2012-07-08
  • 2014-03-22
相关资源
最近更新 更多