从api

时间:2015-11-12 18:01:11

标签: php json api decode

我们正在尝试为我们的班级建立一个网站,在这里您可以看到重要新闻,课程安排,作业时间表以及提示和错误的联系页面......

因此,我们希望时间表始终保持最新状态,并且一个同学会制作api以从我们的学校网站获取时间表数据。但现在我们有一个问题......他不想再帮助我们了! - , -

这是问题吗? 时间表在表格中回显,但它彼此相邻,因为api只分隔包括课程在内的日子。但我们希望这一课从一天开始分开!并在下面互相回应..

有没有人想帮我/我们出去??? Link for a live previeuw how its now!

<?php

$apis = array('verandermij');

if (!isset($_GET['afdeling'])) //school sector
{
    echo "FOUTCODE 1"; //Wrongcode
    exit;
}

if (!isset($_GET['klas'])) // class
{
    echo "FOUTCODE 2"; //Wrongcode
    exit;
}

if (!isset($_GET['api']))
{
    echo "FOUTCODE 3"; //Wrongcode
    exit;
}

$apigeldig = false;
foreach ($apis as $api)
{ 
    if ($api == $_GET['api'])
    {
        $apigeldig = true;
    }
}

if ($apigeldig == false)
{
    echo "FOUTCODE 4"; //Wrongcode
    exit;
}

$afdeling = $_GET['afdeling'];
$klas = $_GET['klas'];

// get the class data
$url = "https://rooster.rocfriesepoort.nl/emmeloord.aspx?group=" . $afdeling . "&specs=" . $klas . "&a=1";
$content = file_get_contents($url);

// little bit cleaning
$content = explode("<div class=header>Rooster</div>", $content);
$content = $content[1];

// Splits dagen
$raw_dagen = explode("<td valign=top style='background-color: #e5e5e5'>", $content); //Raw_Days
$clean_dagen = array(); // Clean_Days

$dagen = array( //Days
    $raw_dagen[1],
    $raw_dagen[2],
    $raw_dagen[3],
    $raw_dagen[4],
    $raw_dagen[5]
);

// Beginnen met sorteren
$opgeschoond = array(); //Cleand

$stoploop = false;
foreach ($dagen as $dag) //Days as Day
{
    $tmp = explode("</div>", $dag);
    $i = 0;
    foreach ($tmp as $item)
    {
        if ($stoploop == true) { $i++; continue; }
        if ($tmp[$i] == null) { $i++; continue; }
        $tmp[$i] = str_replace("<div class='dagHeader'>", "", $tmp[$i]);
        $tmp[$i] = str_replace("<div class=tablecell3>", "VRIJ", $tmp[$i]);
        $tmp[$i] = str_replace("<div class=tablecell1>", "", $tmp[$i]);
        $tmp[$i] = str_replace("<div class=tablecell2>", "", $tmp[$i]);
        $tmp[$i] = str_replace('<br style="clear:both"></br><br><br><div id=footer style="width:95%;">&copy; ROC Friese Poort 2015 - ', "", $tmp[$i]);
        $tmp[$i] = str_replace("<a href='javascript:void(0)'". ' onclick="Disclaimer' . "('500','500','YES')" . '" title=' . "'Disclaimer'>", "", $tmp[$i]);

        if ($tmp[$i] == "</td>")
        {
            $tmp[$i] = "DAG EINDE";
        }
        if ($tmp[$i] == "</td></table>")
        {
            $tmp[$i] = "DAG EINDE";
            unset($tmp[$i + 1]);
            unset($tmp[$i + 2]);
            unset($tmp[$i + 3]);
            unset($tmp[$i + 4]);
            unset($tmp[$i + 5]);
            unset($tmp[$i + 6]);
            $stoploop = true;
        }
        $i++;
    }
    array_push($opgeschoond, $tmp);
}

print(json_encode($opgeschoond));

&GT;

这个我们使用echo数据!!!!!

<table>
        <tr>
            <?php
                foreach ($maandag as $lesuur)
                {
                    print("<td>");
                        print($lesuur);
                    print("</td>");
                }

            ?>
        </tr>
        <tr>
            <?php
                foreach ($dinsdag as $lesuur)
                {
                    print("<td id='oneven'>");
                        print($lesuur);
                    print("</td>");
                }

            ?>
        </tr>
        <tr>
            <?php
                foreach ($woensdag as $lesuur)
                {
                    print("<td>");
                        print($lesuur);
                    print("</td>");
                }

            ?>
        </tr>
        <tr>
            <?php
                foreach ($donderdag as $lesuur)
                {
                    print("<td id='oneven'>");
                        print($lesuur);
                    print("</td>");
                }

            ?>
        </tr>
        <tr>
            <?php
                foreach ($vrijdag as $lesuur)
                {
                    print("<td>");
                        print($lesuur);
                    print("</td>");
                }

            ?>
        </tr>
    </table>

原始数据的链接:enter link description here

[["Maandag 09-11-2015","MTM

荷兰 C2.02 “” MTM 荷兰 A2.08 “ ”VRIJ“,” KAS Wiskunde B2.02 “” KSR SLB A2.07 “,”DAG EINDE“],[”Dinsdag 10-11-2015“,”VRIJ“,”CRL 数据库技术。 A2.07 “” CRL 数据库技术。 A2.07 “” CRL CMS A2.07 “ ”VRIJ“,” CRL CMS A2.07 “” CRL Web服务器 A2.07 “” CRL Web服务器 A2.07 “,”DAG EINDE“],[”Woensdag 11-11-2015“,”VRIJ“,”VRIJ“,”KSR Java脚本 A2.07 “” KSR Java脚本 A2.07 “ ”VRIJ“, ”VRIJ“,” VSS Routeplanner B2.04 “” VSS 左旋 B2.04 “” VSS LLB B2.04 “,”DAG EINDE“],[”Donderdag 12-11-2015“,”VRIJ“,”KRJ 项目 A2.07 “” KRJ 项目 A2.07 “” KRJ 项目 A2.07 “ ”VRIJ“,” KSR 争球 A2.07 “” GFO Rekenen B2.01 “” KSR 争球 A2.07 “,”DAG EINDE“],[”Vrijdag 13-11-2015“,”ZAA 恩格斯 B2.03 “” ZAA 恩格斯 B2.06a “” KRJ 项目 A2.07 “” KRJ 项目 A2.07 “ ”VRIJ“,” KSR SLB A2.07 “” GFO Rekenen B2.06 “,”DAG EINDE“]]

感谢帮助我,初学者(a)

1 个答案:

答案 0 :(得分:0)

从&ap;&#39;返回的数据是一个二维数组,第二个维度是可变宽度,但第一个条目是日期。 data[0][0] = "Maandag 09-11-2015";

如果我理解正确,你想要的是这样的:

$apidata = file_get_contents($apiurl);
$data = json_decode($apidata, true);

$maandag = array_slice($data[0],1)
$dinsdag = array_slice($data[1],1)
$woensdag = array_slice($data[2],1)
$donderdag = array_slice($data[3],1)
$vrijdag = array_slice($data[4],1)

然后你的上面的回声将起作用,从数组中删除的日期名称(虽然也是日期)。

一旦进入这种形式,为这些日子建立一个表格相对简单(虽然我确信其他人会有更清洁的方式):

<?php
$longest = 0;
for($i=0;$i<5;$i++) {
  if($data[$i].count()>$longest) $longest=$data[$i].count();
}
$longest--; // we removed one entry already
?>
<table>
<tr><th>Maandag</th><th>Dinsdag</th><th>Woensdag</th><th>Donderdag</th><th>Vrijdag</th></tr>
<?php
for($i=0;$i<$longest;$i++) {
  print "<tr><td>{$maandag[$i]}</td><td>{$dinsdag[$i]}</td><td>{$woensdag[$i]}</td><td>{$donderdag[$i]}</td><td>{$vrijdag[$i]}</td></tr>\n";
}
?>
</table>

那应该让你设定。在最长的一天完成之前,可能存在尝试访问较短天数的数组条目的运行时错误,但是您可以使用另一个循环添加空字符串来修复它。