2016-03-07 25 views
1

我正在玩一个随机的笑话生成器,随机加载一个随机的HTML页面 与一些蹩脚的笑话。眼下索引页看起来是这样的:使用文本文件中的内容生成静态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页面(只是带有文本的<p>)?我希望能够将笑话添加到文本文件中,然后从中生成HTML页面,而不是在我想添加的每个页面的<p>中复制/粘贴。此外,页面应该是静态的(即joke2.html总是有相同的笑话),所以你以后保存链接/笑话。

我在想Python的yattag,但我相信有一个更简单的解决方案。也许PHP?任何帮助非常感谢!

+1

Google:PHP Read File,Php Explode。来自阵列的Php随机元素。 –

+0

此外,你可以利用以前使用的会话和存储笑话,以免重复自己。 –

+0

感谢James的帮助,我来看看。 –

回答

0
<?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

我们得到使用所述号码的乱开玩笑,然后打印出来。

+1

太棒了,再次感谢詹姆斯!绝对把我放在正确的道路上:-) –

+0

没问题,随时标记为接受。 –

0

我推荐你使用一个模板系统,该模板系统将基于参数输入的html页面呈现给模板代码。 此输入可能包含任何类型的字符串或整数,以便您的html代码显示您发送的输入。

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

您并不需要服务器端代码来执行此任务。所以,你可以用js模板作为车把underscorejs小胡子,还有很多其他的方法在那里:

http://handlebarsjs.com/

https://mustache.github.io/

祝你好运!

+0

把手看起来像一个很好的解决方案,为保持它的客户端+1。感谢Karlos! –

相关问题