从api中分离数据


separate data from a api

我们正在努力为我们的班级创建一个网站,在这里你可以看到重要的新闻、课程安排、家庭作业安排以及提示和错误的联系页面。。。

因此,我们希望时间表始终是最新的,一位同学制作了一个api来从我们的学校网站获取时间表数据。但现在我们有一个问题。。。他不想再帮助我们了!!-,-

问题来了时间表在一张表中回响,但它挨着放,因为api只分隔包括课程在内的日子。但是我们想把这节课从一天中分离出来!并相互呼应下面的表格。。

有人想帮我/我们吗???链接实时预览现在的情况!

<?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));

?>

这是我们使用的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>

原始数据的链接:在此处输入链接描述

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

荷兰C2.02","MTM荷兰语2008年2月","VRIJ","KAS维斯昆德B2.02","KSRSLB2007年2月","DAG EINDE"],["Dinsdag 10-11-2015","VRIJ","CRL数据库技术。2007年2月","CRL数据库技术。2007年2月","CRL厘米2007年2月","VRIJ","CRL厘米2007年2月","CRLWeb服务器2007年2月","CRLWeb服务器2007年2月","DAG EINDE"],["Woensdag 11-11-2015","VRIJ","VRIJ","KSRJava脚本2007年2月","KSRJava脚本2007年2月","VRIJ","VRIJ","VSS路线规划器B2.04","VSSLevOB2.04","VSSLLBB2.04","DAG EINDE"],["Donderdag 12-11-2015","VRIJ","KRJ项目2007年2月","KRJ项目2007年2月","KRJ项目2007年2月","VRIJ","KSRScrum2007年2月","GFORekenenB2.01","KSRScrum2007年2月","DAG EINDE"],["Vrijdag 13-11-2015","ZAA恩格斯B2.03","ZAA恩格斯B2.06 a","KRJ项目2007年2月","KRJ项目2007年2月","VRIJ","KSRSLB2007年2月","GFORekenenB2.06","DAG EINDE"]]

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

从"api"返回的数据是一个二维数组,第二个维度的宽度可变,但第一个条目是日期。CCD_ 1。

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

$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>

那应该是你设定的。在最长的一天结束之前,试图访问较短天数的数组条目时可能会出现运行时错误,但您可以通过另一个添加空字符串的循环来解决此问题。