示例#1
0
function shows()
{
    $base = config('base');
    $args = config('args');
    $bc = bc();
    echo <<<HTML
<h3 class="title round3"> {$bc} </h3>
<article class="round2 shadow2">
HTML;
    nav();
    if (isset($args)) {
        $file = root . "cache/lists/{$args}-showlist.xml";
        $xml = cache($file, '3600*168', shows . $args);
    } else {
        $file = root . 'cache/lists/a-showlist.xml';
        $xml = cache($file, '3600*168', shows . 'a');
    }
    #args
    echo <<<TH
<table id="shows">
  <th class="show"> Shows </th>
  <th> Country </th>
  <th class="status"> Status </th>
TH;
    foreach ($xml->xpath('///show') as $show) {
        $name = $show->name;
        $sid = $show->id;
        $country = $show->country;
        $status = $show->status;
        switch ($show->status) {
            case 1:
                $status = 'Returning Series';
                break;
            case 2:
                $status = 'Canceled/Ended';
                break;
            case 3:
                $status = 'TBD/On The Bubble';
                break;
            case 4:
                $status = 'In Development';
                break;
            case 7:
                $status = 'New Series';
                break;
            case 8:
                $status = 'Never Aired';
                break;
            case 9:
                $status = 'Final Season';
                break;
            case 10:
                $status = 'On Hiatus';
                break;
            case 11:
                $status = 'Pilot Ordered';
                break;
            case 12:
                $status = 'Pilot Rejected';
                break;
            default:
                $status = 'Unknown';
                break;
        }
        #switch
        echo <<<TR
  <tr>
    <td class="show"> <a href="{$base}episode/{$sid}">{$name}</a> </td>
    <td> {$country} </td> <td class="status"> {$status} </td>
  </tr>
TR;
    }
    #foreach-show
    echo '</table>';
}
示例#2
0
function cac_func($f, $s, $tqwe = 0)
{
    global $pi;
    $tma = 'Too many arguments';
    $tfa = 'Too few arguments';
    $a = explode(',', $s);
    $c = count($a);
    if ($tqwe == 0) {
        for ($i = 0; $i < $c; ++$i) {
            $a[$i] = substr($a[$i], 1, strlen($a[$i]) - 2);
        }
    }
    if ($f == 'count') {
        $r = $c;
    } elseif ($f == 'gcdr') {
        if ($a[1] == 0) {
            $r = $a[0];
        } else {
            $r = cac_func('gcdr', $a[1] . ',' . (bc() ? bcmod($a[0], $a[1]) : $a[0] % $a[1]), 1);
        }
    } elseif ($f == 'root') {
        $r = pow($a[0], 1 / $a[1]);
    } elseif ($f == 'gcd') {
        $q = $a[0];
        for ($i = 1; $i < $c; ++$i) {
            $q = cac_func('gcdr', $q . ',' . $a[$i], 1);
        }
        $r = $q;
    } elseif ($f == 'lcmc') {
        $gcd = cac_func('gcdr', $s, 1);
        $r = bc() ? bcmul(bcdiv($a[0], $gcd), $a[1]) : $a[0] / $gcd * $a[1];
    } elseif ($f == 'lcm') {
        $r = $a[0];
        for ($i = 1; $i < $c; ++$i) {
            $r = cac_func('lcmc', $r . ',' . $a[$i], 1);
        }
    } elseif ($f == 'plus') {
        $r = bc() ? bcadd($a[0], $a[1]) : $a[0] + $a[1];
    } elseif ($f == 'minus') {
        $r = bc() ? bcsub($a[0], $a[1]) : $a[0] - $a[1];
    } elseif ($f == 'multiply') {
        $r = bc() ? bcmul($a[0], $a[1]) : $a[0] * $a[1];
    } elseif ($f == 'divide') {
        if ($a[1] == 0) {
            addmsg(ERR, 'Divided by zero');
        }
        $r = bc() ? bcdiv($a[0], $a[1]) : $a[0] / $a[1];
    } elseif ($f == 'sum') {
        $r = 0;
        for ($i = 0; $i < $c; ++$i) {
            $r = bc() ? bcadd($r, $a[$i]) : $r + $a[$i];
        }
    } elseif ($f == 'average') {
        $r = cac_func('sum', implode(',', $a), 1);
        $r = bc() ? bcdiv($r, $c) : $r / $c;
    } elseif ($f == 'avedev') {
        $ave = cac_func('average', implode(',', $a), 1);
        $r = '0';
        if (bc()) {
            for ($i = 0; $i < $c; ++$i) {
                $tmp = bcsub($a[$i], $ave);
                if (substr($tmp, 0, 1) == '-') {
                    $tmp = substr($tmp, 1);
                }
                $r = bcadd($r, $tmp);
                $r = bcdiv($r, $c);
            }
        } else {
            for ($i = 0; $i < $c; ++$i) {
                $tmp = $a[$i] + $ave;
                if ($tmp < 0) {
                    $tmp *= -1;
                }
                $r += $tmp;
                $r /= $c;
            }
        }
    } elseif ($f == 'stdev') {
        $ave = cac_func('average', implode(',', $a), 1);
        $r = 0;
        for ($i = 0; $i < $c; ++$i) {
            $r = bc() ? bcadd($r, bcpow(bcsub($a[$i], $ave), '2')) : $r + pow($a[$i] - $ave, 2);
        }
        $r = bc() ? bcsqrt(bcdiv($r, $c - 1)) : sqrt($r / ($c - 1));
    } elseif ($f == 'stdevp') {
        $ave = cac_func('average', implode(',', $a), 1);
        $r = 0;
        for ($i = 0; $i < $c; ++$i) {
            $r = bc() ? bcadd($r, bcpow(bcsub($a[$i], $ave), '2')) : $r + pow($a[$i] - $ave, 2);
        }
        $r = bc() ? bcsqrt(bcdiv($r, $c)) : sqrt($r / $c);
    } elseif ($f == 'min') {
        if ($a[0] > $a[1]) {
            $r = $a[1];
        } else {
            $r = $a[0];
        }
    } elseif ($f == 'max') {
        if ($a[0] > $a[1]) {
            $r = $a[0];
        } else {
            $r = $a[1];
        }
    } elseif ($f == 'fac') {
        if ($c > 1) {
            addmsg(WARN, $tma);
        }
        if (floor($a[0]) != $a[0]) {
            addmsg(ERR, 'Argument should be an integer');
        }
        $i = 1;
        for ($j = 1; $j <= $a[0]; ++$j) {
            if (bc()) {
                $i = bcmul($i, $j);
            } else {
                $i *= $j;
            }
        }
        $r = $i;
    } elseif ($f == 'c') {
        if ($c > 2) {
            addmsg(WARN, $tma);
        }
        if ($c < 2) {
            addmsg(WARN, $tfa);
        }
        $r = cac_func('fac', $a[0], 1) / cac_func('fac', $a[1], 1) / cac_func('fac', cac_func('minus', $a[0] . ',' . $a[1], 1), 1);
    } elseif ($f == 'abs') {
        for ($i = 0; $i < $c; ++$i) {
            if (substr($a[$i], 0, 1) == '-') {
                $a[$i] = substr($a[$i], 1);
            }
        }
        $r = implode(',', $a);
    } elseif ($f == 'ceil') {
        for ($i = 0; $i < $c; ++$i) {
            $a[$i] = ceil($a[$i]);
        }
        $r = implode(',', $a);
    } elseif ($f == 'floor') {
        for ($i = 0; $i < $c; ++$i) {
            $a[$i] = floor($a[$i]);
        }
        $r = implode(',', $a);
    } elseif ($f == 'round') {
        if ($c > 2) {
            addmsg(WARN, $tma);
            $r = 0;
        }
        if ($c == 1) {
            $a[1] = 0;
        }
        $r = round($a[0], $a[1]);
    } elseif ($f == 'radians') {
        $r = bc() ? bcdiv(bcmul($a[0], $pi), 180) : $a[0] * $pi / 180;
    } elseif ($f == 'degrees') {
        $r = bc() ? bcdiv(bcmul($a[0], 180), $pi) : $a[0] * 180 / $pi;
    } elseif ($f == 'log') {
        if ($c > 2) {
            addmsg(WARN, $tma);
            $r = 0;
        }
        if ($c == 1) {
            $a[1] = '10';
        }
        $r = log($a[0], $a[1]);
    } elseif ($f == 'ln') {
        if ($c > 1) {
            addmsg(WARN, $tma);
            $r = 0;
        }
        $r = log($a[0]);
    } elseif ($f == 'pow') {
        if ($c > 2) {
            addmsg(WARN, $tma);
            $r = 0;
        }
        if ($c < 2) {
            addmsg(WARN, $tma);
            $r = 0;
        }
        if (strpos($a[1], '.') === false) {
            $r = bc() ? bcpow($a[0], $a[1]) : pow($a[0], $a[1]);
        } else {
            $r = pow($a[0], $a[1]);
        }
    } elseif ($f == 'sqrt') {
        if ($c > 1) {
            addmsg(WARN, $tma);
            $r = 0;
        }
        $r = bc() ? bcsqrt($a[0]) : sqrt($a[0]);
    } elseif ($f == 'exp') {
        if ($c > 1) {
            addmsg(WARN, $tma);
            $r = 0;
        }
        $r = exp($a[0]);
    } elseif ($f == 'mod') {
        if ($c > 2) {
            addmsg(WARN, $tma);
            $r = 0;
        }
        if ($c < 2) {
            addmsg(WARN, $tfa);
            $r = 0;
        }
        $r = bc() ? bcmod($a[0], $a[1]) : $a[0] % $a[1];
    } elseif ($f == 'sin') {
        if ($c > 1) {
            addmsg(WARN, $tma);
            $r = 0;
        }
        $r = sin($a[0]);
    } elseif ($f == 'cos') {
        if ($c > 1) {
            addmsg(WARN, $tma);
            $r = 0;
        }
        $r = cos($a[0]);
    } elseif ($f == 'tan') {
        if ($c > 1) {
            addmsg(WARN, $tma);
            $r = 0;
        }
        $r = tan($a[0]);
    } elseif ($f == 'cot') {
        if ($c > 1) {
            addmsg(WARN, $tma);
            $r = 0;
        }
        $r = cot($a[0]);
    } elseif ($f == 'sec') {
        if ($c > 1) {
            addmsg(WARN, $tma);
            $r = 0;
        }
        $r = sec($a[0]);
    } elseif ($f == 'csc') {
        if ($c > 1) {
            addmsg(WARN, $tma);
            $r = 0;
        }
        $r = csc($a[0]);
    } elseif ($f == 'analyze') {
        if ($c > 1) {
            addmsg(WARN, $tma);
        }
        $r = $a[0];
        $t = $r;
        $b = array();
        $e = array();
        $z = 0;
        $i = 2;
        $m = '';
        if (bc()) {
            if (substr($r, 0, 1) == '-') {
                $m .= '&nbsp;-1';
                $t = bcmul($t, '-1');
            }
            while ($t != '1') {
                if (bcmod($t, $i) == '0') {
                    $z = count($b);
                    $t = bcdiv($t, $i);
                    $b[$z] = $i;
                    $e[$z] = 1;
                }
                while (bcmod($t, $i) == '0') {
                    ++$e[$z];
                    $t = bcdiv($t, $i);
                }
                $i = bcadd($i, 1);
            }
        } else {
            if (substr($r, 0, 1) == '-') {
                $m .= '&nbsp;-1';
                $t *= -1;
            }
            while ($t != 1) {
                $bak = $t;
                if ($t % $i == 0) {
                    $z = count($b);
                    $t /= $i;
                    $b[$z] = $i;
                    $e[$z] = 1;
                }
                while ($t % $i == 0) {
                    ++$e[$z];
                    $t = $t / $i;
                }
                ++$i;
                if ($bak == $t) {
                    addmsg(ERR, 'The number might be too large.');
                    break;
                }
            }
        }
        for ($i = 0; $i <= $z; ++$i) {
            $b[$i] = preg_replace('/\\.0+$/', '', $b[$i]);
            $m .= '&nbsp;&nbsp;' . $b[$i] . ($e[$i] > 1 ? '<sup>' . $e[$i] . '</sup>' : '');
        }
        addmsg(INFO, $r . '&nbsp;=' . $m);
    }
    if ($tqwe == 0) {
        $r = '<' . $r . '>';
    }
    return $r;
}