如果我做错了,请在这里第一次道歉。
我有以下php代码:
<?php
$quoteFile = "quotes.txt"; //File holding qoutes
$fp = fopen($quoteFile, "r"); //Opens file for read
$content = fread($fp, filesize($quoteFile));
$quotes = explode("\n",$content); //Put quotes into array
fclose($fp); //Close the file
srand((double)microtime()*1000000); // randomize
$index = (rand(1, sizeof($quotes)) - 1); //Pick random qoute
?>
代码通过随机选择.txt文件中的一行来从文本文件中获取随机引用。
然后我用:
回显结果echo $quotes[$index];
然而,我想要实现并且似乎无法拥有一个按钮(html),当点击该按钮时执行
echo $quotes[$index];到当前页面。因此,每次单击按钮时,它都会打印/回显来自.text文件的随机引用。
我只是设置了一个按钮来刷新页面,但默认情况下创建了一个新的随机引用显示,但它有时只是重新加载一个空白,所以我希望有人可以帮助我更好地实现这一目标或提示我在正确的方向。谢谢你。
答案 0 :(得分:0)
您可以尝试将该变量保存到会话变量中,如下所示:
$_SESSION['quote'] = $quote['index'];
然后创建一个重定向到当前页面的锚元素:
<a href="current_page.php">Refresh</a>
并在页面上打印结果:
<span><?php echo $_SESSION['quote']; ?></span>
要完成所有这些操作,您需要设置会话。在php文件的顶部写:
session_start();
希望有所帮助。 :)
答案 1 :(得分:-2)
您的TXT文件最后或其他任何位置可能都有一个空行。对此的第二个解释是,你产生随机性的方式是非常值得怀疑的。
查看W3学校的这个简单例子。
$a=array("red","green","blue","yellow","brown");
$random_keys=array_rand($a,1);
echo $a[$random_keys[0]]."<br>";
array_rand()函数从数组中返回一个随机密钥,或者如果指定该函数应该返回多个密钥,它将返回一个随机密钥数组。
或者,简单地说:
<?php
$a=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
print_r(array_rand($a,1));
?>
完整帖子:http://www.w3schools.com/php/func_array_rand.asp
快乐的编码!