|
|
发表于 2025-11-3 10:24:08
|
显示全部楼层
这个可以替换
<?php
// 换行处理:根据运行环境定义换行符(CLI用\n,网页用\n<br>)
if (php_sapi_name() === 'cli') {
define('LF', "\n");
} else {
define('LF', "\n<br>");
}
// 需要过滤的房间名称(直接在此添加/删除过滤项)
$filterNames = [
'欢迎来到我的直播间',
'我是一颗小虎牙'
];
// 替换规则:键为目标名称,值为需要匹配的关键词列表(新增规则直接加一行)
$replaceRules = [
'周星驰' => ['星爷', '周星驰', '周星星'],
'林正英' => ['英叔', '林正英'],
'王晶' => ['王晶'],
// 示例新增规则:
// '周润发' => ['发哥', '周润发'],
// '刘德华' => ['华仔', '刘德华'],
];
// API分类列表(需要调整分类或链接时直接修改此处)
$apis = [
'一起看电影' => 'https://live.huya.com/liveHttpUI/getTmpLiveList?iTmpId=2067&iPageNo=1&iPageSize=120&iLibId=2213&iGid=2135',
'一起看电视剧' => 'https://live.huya.com/liveHttpUI/getTmpLiveList?iTmpId=2079&iPageNo=1&iPageSize=120&iLibId=2227&iGid=2135',
'一起看动漫' => 'https://live.huya.com/liveHttpUI/getTmpLiveList?iTmpId=6861&iPageNo=1&iPageSize=120&iLibId=6761&iGid=2135',
'一起看综艺' => 'https://live.huya.com/liveHttpUI/getTmpLiveList?iTmpId=1011&iPageNo=1&iPageSize=120&iLibId=1137&iGid=2135',
'一起看UP主' => 'https://live.huya.com/liveHttpUI/getTmpLiveList?iTmpId=6879&iPageNo=1&iPageSize=120&iLibId=6775&iGid=2135',
'一起看最新' => 'https://live.huya.com/liveHttpUI/getTmpLiveList?iTmpId=6871&iPageNo=1&iPageSize=120&iLibId=6767&iGid=2135'
];
// 启用输出缓冲,优化输出处理
ob_start();
// 遍历每个分类API
foreach ($apis as $genre => $url) {
// 初始化curl并设置参数
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true, // 结果返回而非直接输出
CURLOPT_TIMEOUT => 10, // 超时时间10秒
CURLOPT_SSL_VERIFYPEER => false, // 跳过SSL证书验证(视环境调整)
CURLOPT_SSL_VERIFYHOST => false
]);
// 执行请求并获取响应
$response = curl_exec($ch);
$error = curl_error($ch);
curl_close($ch); // 关闭curl资源
// 跳过请求失败的情况
if ($error || !$response) {
continue;
}
// 解析JSON响应
$data = json_decode($response, true);
// 跳过解析失败或无数据的情况
if (json_last_error() !== JSON_ERROR_NONE || !isset($data['vList'])) {
continue;
}
// 输出分类标题(格式:分类名,#genre#)
echo $genre . ",#genre#" . LF;
// 遍历每个房间数据
foreach ($data['vList'] as $item) {
// 确保必要字段存在
if (isset($item['sIntroduction'], $item['lProfileRoom'])) {
$roomName = $item['sIntroduction']; // 原始房间名
$profileRoom = (string)$item['lProfileRoom']; // 房间ID
// 根据替换规则处理房间名
foreach ($replaceRules as $target => $keywords) {
// 生成正则模式(匹配任意关键词,忽略大小写)
$pattern = '/(' . implode('|', array_map('preg_quote', $keywords)) . ')/i';
// 匹配到则替换为目标名称,并跳出循环(避免重复替换)
if (preg_match($pattern, $roomName)) {
$roomName = $target;
break;
}
}
// 过滤不需要的房间名
if (in_array($roomName, $filterNames)) {
continue;
}
// 生成房间链接并输出(格式:房间名,链接)
$link = "http://你的域名/hy.php?id=$profileRoom";
echo "$roomName,$link" . LF;
}
}
// 分类间用空行分隔
echo LF;
}
// 处理输出:去除末尾多余换行后再补一个
$output = ob_get_clean();
echo rtrim($output, LF) . LF;
?> |
|