本文最后更新于 294 天前,其中的信息可能已经有所发展或是发生改变。
最近想搞个随机一言,于是我就从网上搜索代码
我搜到了这么一个结果
<?php
$filename = 'data.dat';
header('Content-type: text/html; charset=utf-8');
if(!file_exists($filename)) {
die($filename . ' 数据文件不存在');
}
$data = file_get_contents($filename);
$data = explode(PHP_EOL, $data);
$result = $data[array_rand($data)];
$result = str_replace(array("\r","\n","\r\n"), '', $result);
if($result==""){//防止获取到空值
echo 'document.write("'."糟糕没有数据,请重新刷新一下".'");';//使用js进行调用
}else{
echo 'document.write("'.($result).'");';//使用js进行调用
}
但是我在被调用的 txt 文件里包含 HTML 代码
两个 <p> xxx </p>
所以它前面会有 document.write
虽然效果达到了,但是前面那段文字很妨碍显示
于是我再寻找,找到一个更短的代码
<?php
$txt='filename.txt';
$a=file($txt);
$b=count($a);
$rand=rand(0,$b);
$rand_shuchu=$a[$rand];
echo $rand_shuchu
?>
这回就不显示了
代码是好了,但是我想再加一个刷新按钮,于是造成下面这种结果
https://api.azqaq.top/0/error1.php
看来直接加不行,需要另外一个页面调用
于是新建了一个 html 文件调用,但是我发现不行,后来才知道要添加下面这个代码
<?php
$f = $_GET['f'];
echo "document.write('".$f."');";
?>
但是我这里还是显示空白
我尝试改成 PHP,但是出现了下面情况
https://api.azqaq.top/0/get/error.php
我寻思着明明没错为什么会报错, PHP 路径也没错啊
在网络上查找之后,我才知道,要填写服务器内部的路径,例如
/www/wwwroot/xxxx/file.php (Linux)
D:\file.php (Windows)
最后,终于实现了随机文本的效果
后来还想做一个免刷新整个页面直接重新变文本的效果,但是感觉太麻烦就不做了