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>'; }
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 .= ' -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 .= ' -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 .= ' ' . $b[$i] . ($e[$i] > 1 ? '<sup>' . $e[$i] . '</sup>' : ''); } addmsg(INFO, $r . ' =' . $m); } if ($tqwe == 0) { $r = '<' . $r . '>'; } return $r; }