【php源码】看小姐姐唱歌,来自52pj某网友发帖挨删了
@TabKey9,我不会,哈哈哈 小米11PRO(黑)
所以可以考虑增加调到下一个视频功能?
@没落的情绪,那你就先用刷新页面代替吧!我也不会那个上下滑动切换视频的功能
代码需要审核,有点麻烦,所以5楼不改了,需要你自己动手替换代码进Joyful.php文件中
Joyful.php
一个是报错:Uncaught TypeError: count(): Argument #1 ($value) must be of type Countable|array, null given in..... 原因:
Uncaught TypeError: count(): Argument #1 ($value) must be of type Countable|array, null given in.....
这个错误的意思是 count() 函数的第一个参数必须是可数的数组,但实际传递了一个 null。通常这种错误发生在尝试使用 count() 函数计算非数组变量的长度时。 为了解决这个错误,我们需要确保 count() 函数的第一个参数是一个可数的数组。为此,我们可以使用 PHP 中的 is_array() 函数和 empty() 函数进行检查。如果变量是一个空数组,那么我们可以将它视为不可数的,并将其设置为一个空数组。
这个错误的意思是 count() 函数的第一个参数必须是可数的数组,但实际传递了一个 null。通常这种错误发生在尝试使用 count() 函数计算非数组变量的长度时。
为了解决这个错误,我们需要确保 count() 函数的第一个参数是一个可数的数组。为此,我们可以使用 PHP 中的 is_array() 函数和 empty() 函数进行检查。如果变量是一个空数组,那么我们可以将它视为不可数的,并将其设置为一个空数组。
解决方案:加数组判断以及非空检验。
另一个是警告:Warning: Undefined array key 0 in...... 原因:服务器缓存文件Joyful.txt里是空值。 解决:删除缓存文件,然后用户自己刷新页面就好了,服务器会重新生成一个新的缓存文件。
Warning: Undefined array key 0 in......
Joyful.txt
// 变更前 function get_video_id($Api) { $cache = __DIR__ . '/Joyful.txt'; if (is_file($cache)) { $Data = unserialize(file_get_contents($cache)); if (count($Data) == 0) { $Data = json_decode(file_get_contents($cache), true); } } else { $Data = json_decode(file_get_contents($Api), true); } $key = rand(0, count($Data) - 1); $video_id = $Data[$key]; unset($Data[$key]); file_put_contents($cache, serialize(array_values($Data))); return $video_id; }
变更后
// 变更后 function get_video_id($Api) { $cache = __DIR__ . '/Joyful.txt'; if (is_file($cache)) { $Data = unserialize(file_get_contents($cache)); if (!is_array($Data)) { $Data = json_decode(file_get_contents($cache), true); if (!is_array($Data)) { $Data = array(); } } } else { $Data = json_decode(file_get_contents($Api), true); } if (empty($Data)) { unlink($cache); // 删除缓存文件 $Data = json_decode(file_get_contents($Api), true); } $key = !empty($Data) ? rand(0, count($Data) - 1) : null; $video_id = isset($Data[$key]) ? $Data[$key] : null; if ($key !== null && $video_id !== null) { unset($Data[$key]); file_put_contents($cache, serialize(array_values($Data))); } return $video_id; }
这以前不是挺火的一个吗 git上这么多源码 https://github.com/maintell/xjj https://github.com/xiaoboke/xjjsuiji https://github.com/0xFlag/kuaishouxjj https://github.com/ylqf/xiaojiejie
@echo醉老仙,我看看你分享的这些源码
@艾木友尔尔巴,你看看你的29楼:https://hu60.cn/q.php/bbs.topic.104953.html?floor=29#29
@TabKey9,完美
@没落的情绪,@艾木友尔尔巴,好看了亿点点,做了一个弹窗式菜单,菜单会在视频被暂停时触发,那个不喜欢就是播放下一个视频的按钮,这是第7个版了,后面应该不改了,在52pj给原作者留了一份源码:https://www.52pojie.cn/forum.php?mod=redirect&goto=findpost&ptid=1783254&pid=46687051
亿
不喜欢
这贴发不发源码都可以了,php没有改动,html经常改动,29楼鼠标右键查看框架源代码
查看框架源代码
其实吧,监听video标签就行了
@echo醉老仙,我对前端不熟,全靠机器人。。。
document.addEventListener("DOMContentLoaded", function() { // 获取视频元素 const video = document.getElementById("video"); // 适配 PC - 给 video添加点击事件监听器 $('#video')[0].addEventListener('click', () => { // 检查视频是否被暂停 if (!video.paused) { // console.log("弹出菜单~"); menu(200,1); // debug:第二参数为1时,不重复读本地存储 } }); // 适配 Phone - 给 video添加触摸事件监听器 $('#video')[0].addEventListener('touchstart', () => { // console.log("触摸事件~"); menu(200, 1); }); });
@TabKey9,我不会,哈哈哈
小米11PRO(黑)
@没落的情绪,那你就先用刷新页面代替吧!我也不会那个上下滑动切换视频的功能
解决了一个BUG
一个是报错:
Uncaught TypeError: count(): Argument #1 ($value) must be of type Countable|array, null given in.....
原因:
解决方案:加数组判断以及非空检验。
另一个是警告:
Warning: Undefined array key 0 in......
原因:服务器缓存文件
Joyful.txt
里是空值。解决:删除缓存文件,然后用户自己刷新页面就好了,服务器会重新生成一个新的缓存文件。
解决方案看这:仅展示变更的代码:
变更后
这以前不是挺火的一个吗
git上这么多源码
https://github.com/maintell/xjj
https://github.com/xiaoboke/xjjsuiji
https://github.com/0xFlag/kuaishouxjj
https://github.com/ylqf/xiaojiejie
在这帖子补个原作者的链接
@echo醉老仙,我看看你分享的这些源码
@艾木友尔尔巴,
你看看你的29楼:https://hu60.cn/q.php/bbs.topic.104953.html?floor=29#29
@TabKey9,完美
@没落的情绪,@艾木友尔尔巴,好看了
亿
点点,做了一个弹窗式菜单,菜单会在视频被暂停时触发,那个不喜欢
就是播放下一个视频的按钮,这是第7个版了,后面应该不改了,在52pj给原作者留了一份源码:https://www.52pojie.cn/forum.php?mod=redirect&goto=findpost&ptid=1783254&pid=46687051这贴发不发源码都可以了,php没有改动,html经常改动,29楼鼠标右键
查看框架源代码
其实吧,监听video标签就行了

@echo醉老仙,
我对前端不熟,全靠机器人。。。
更新:适配手机浏览器暂停播放后不触发菜单的问题