全球主机交流论坛

标题: 懂PHP的来 求大佬们帮帮忙吧! [打印本页]

作者: ieevip    时间: 2021-10-15 11:30
标题: 懂PHP的来 求大佬们帮帮忙吧!
  求助大佬,附件里代码我想要每次获取10篇随机文章,该怎么弄?它这个代码默认是调用10篇最新的文章,例如1到10.html。我想让他每次都调用不一样的,就是随机展示1 3 5 8 .html   代码在附件里,下载后帮我改下,回复到这里。改哪些语句就行!

   


作者: ieevip    时间: 2021-10-15 11:31
谁会改,可以私信联系 我给个小红包也行
作者: ieevip    时间: 2021-10-15 11:34
没人会吗?
作者: 华为任正非    时间: 2021-10-15 11:36
看了下,实现不了。
作者: ieevip    时间: 2021-10-15 11:36
华为任正非 发表于 2021-10-15 11:36
看了下,实现不了。

不可以随机调用吗?
作者: DaShi    时间: 2021-10-15 11:38
刚看到帖子还以为楼主在说我的站呢
我的一个采集站就是每次随机显示十篇文章
作者: 华为任正非    时间: 2021-10-15 11:38
ieevip 发表于 2021-10-15 11:36
不可以随机调用吗?

不能,那个函数只能调用最新(倒序)的或者最旧(正序)的。
除非你一次性读取最新1000篇文章然后从里面随机筛选10篇。
但那样性能基本上完蛋,根本不能那么写。
作者: ieevip    时间: 2021-10-15 11:39
华为任正非 发表于 2021-10-15 11:38
不能,那个函数只能调用最新(倒序)的或者最旧(正序)的。
除非你一次性读取最新1000篇文章然后从里面 ...

所以说 还是改函数对吧
作者: teardrops    时间: 2021-10-15 11:39
可以实现伪随机。  

开头从数据库选了8个文章

可以改成全部。 然后缓存个30分钟

30分钟内从缓存里面随机


作者: ieevip    时间: 2021-10-15 11:40
teardrops 发表于 2021-10-15 11:39
可以实现伪随机。  

开头从数据库选了8个文章

就是代码不会写
作者: 华为任正非    时间: 2021-10-15 11:42
ieevip 发表于 2021-10-15 11:39
所以说 还是改函数对吧


对,要写新的底层函数。
比如楼上说的缓存,每次发文章把ID都写进一个文件,然后这个文件就有所有的文章ID,从里面随机抽取。
或者更复杂的在数据库层面随机读取,这个就要找同时懂SQL和PHP的大佬来搞了。
作者: lkkle    时间: 2021-10-15 11:42
这是啥php框架

作者: teardrops    时间: 2021-10-15 11:44
order by rand() limit 8

貌似就好了
作者: imdong    时间: 2021-10-15 11:46
这个要先弄清 底层用的什么框架
作者: ieevip    时间: 2021-10-15 11:46
teardrops 发表于 2021-10-15 11:44
order by rand() limit 8

貌似就好了

我试试吧
作者: teardrops    时间: 2021-10-15 11:47
imdong 发表于 2021-10-15 12:46
这个要先弄清 底层用的什么框架

一语中的
作者: ieevip    时间: 2021-10-15 11:56
imdong 发表于 2021-10-15 11:46
这个要先弄清 底层用的什么框架

应该是tp
作者: injy    时间: 2021-10-15 12:04
$arr = 文章列表
$arr_suiji =生成随机数

each $url=$arr[$arr_suiji]
作者: ieevip    时间: 2021-10-15 12:05
injy 发表于 2021-10-15 12:04
$arr = 文章列表
$arr_suiji =生成随机数

那么如何加到代码里呢?
作者: szx237560    时间: 2021-10-15 12:11
$contents = $DB->rand('article_list', ['title', 'content', 'id', 'createTime'], ['status' => 1, 'LIMIT' => 8]);
作者: imdong    时间: 2021-10-15 12:12
ieevip 发表于 2021-10-15 11:56
应该是tp

不是TP吧  文档上没见到过有这种用法
也可以把DB类文件贴出来 看看怎么改
作者: ieevip    时间: 2021-10-15 12:13
szx237560 发表于 2021-10-15 12:11
$contents = $DB->rand('article_list', ['title', 'content', 'id', 'createTime'], ['status' => 1, 'LIM ...

感谢 你这代码可以 已经解决了
作者: Ryen    时间: 2021-10-15 20:57
其实如果html的路径是固定的,可以将每一个地址安装每行一个的格式保存到一个文本文件中,通过php随机调用txt某一行就行了,但是如果要随机调用十个不一样的,这个办法可能行不通,如果网页数量大是可能能实现的




欢迎光临 全球主机交流论坛 (https://443502.xyz/) Powered by Discuz! X3.4