PHP实现剑网三花价获取
之前一直使用的 球球 突然暴毙 404 Not Found,后来发现 JX3BOX 同样提供了这项服务,默认大区是梦江南
用起来就很不顺手,打算自己抓接口写一个更方便的。
同样,网页右键检查,调用的接口清清楚楚。
https://next.jx3box.com/api/flower/price/rank?server=天鹅坪
不出意外,数据也是 Json 格式。
解析一下 Json 数据,在循环里输出。用file_get_contents
获取,json_decode
解析成数组,别的就不多说了 (毕竟面向百度编程)。总归还是有追求的网页,总得美化一下,把数据装到表格里面。CSS 部分 借鉴 参考菜鸟教程的 漂亮的表格 ,修改了一下。
.tableStyle {
margin-top: 13px;
}
.tableStyle td{
background-color:#ffffff;
height:25px;
text-align:center;
padding:5px 17px;
}
.tableFont {
font-family: 微软雅黑;
font-size: 16px;
font-weight: bold;
color: #255e95;
background: #e9faff !important;
}
.tableTittle{
font-family: 微软雅黑;
font-size: 26px;
font-weight: bold;
border-bottom:1px dashed #CCCCCC;
color: #255e95;
}
20.7.19
现学现卖 加入了 GET 获取家园线路,遍历数据找到高花价线路中的当前线路。
吐槽一下 typecho 默认不支持emoji
,输入emoji
后面的内容会全部丢失。这个破问题找了半天。
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>天鹅坪-花价助手</title>
<link rel="stylesheet" type="text/css" href="index.css">
</head>
<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td align="center" class="tableTittle" height="60">天鹅坪-花价助手</td>
</tr>
<tr>
<?php
$line="-1";
if(is_array($_GET)&&count($_GET)>0){
if(isset($_GET["line"])){
$line=$_GET["line"];
}
}
if($line=="-1"){
$line="235";
}
echo "<td align=center height=25 style=\"color:#778899\">当前线路:".$line." 线</td>";
?>
</tr>
</table>
<table border="0" class="tableStyle" cellspacing="1" cellpadding="4" bgcolor="#cccccc" align="center">
<?php
$json_string = file_get_contents('https://next.jx3box.com/api/flower/price/rank?server=%E5%A4%A9%E9%B9%85%E5%9D%AA');
$data = json_decode($json_string, true);
$flowerArr = array_keys($data);
$flowerKey = count($flowerArr);
for($i=0;$i<$flowerKey;$i++){
echo "<tr>";
echo "<td class=tableFont>";
echo $flowerArr[$i];
echo "</td>";
$lineKey=count($data[$flowerArr[$i]]['maxLine']);
$myLine=0;
for($j=0;$j<$lineKey;$j++){
if($line==mb_substr($data[$flowerArr[$i]]['maxLine'][$j],0,mb_strlen($data[$flowerArr[$i]]['maxLine'][$j])-2)){
$myLine=1;
}
}
if($myLine==0){
for($j=0;$j<3;$j++){
echo "<td>";
echo $data[$flowerArr[$i]]['maxLine'][$j];
echo "</td>";
}
}
else {
echo "<td colspan=3 style=\"color:#e45649\">🎉不用跑啦,就在".$line." 线!🎉</td>";
echo "</tr>";
}}
?>
</table>
<p style="text-align:center">数据来源:<a href="https://www.jx3box.com/app/flower/">JX3BOX</a> Powered by zjcs</p>
</body>
</html>