PHP实现剑网三花价获取

之前一直使用的 球球 突然暴毙 404 Not Found,后来发现 JX3BOX 同样提供了这项服务,默认大区是梦江南用起来就很不顺手,打算自己抓接口写一个更方便的。

同样,网页右键检查,调用的接口清清楚楚。

https://next.jx3box.com/api/flower/price/rank?server=天鹅坪

pic

不出意外,数据也是 Json 格式。

pic

解析一下 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>