<?php
$kernel = array();
$k_list_url = "http://www.kernel.org/";
class Kernel {
var $name, $id, $parent, $version, $patchurl, $srcurl, $moddate;
function Kernel($name, $id, $parent) {
$this->name = $name;
$this->id = $id;
$this->parent = $parent;
}
}
$kernel[] = new Kernel("stable",'The latest stable version of the Linux kernel is:',"");
$kernel[] = new Kernel("stable-prepatch",'The latest <a href="prepatch.html">prepatch<\/a> for the stable Linux kernel tree is:',"stable");
$kernel[] = new Kernel("beta",'The latest beta version of the Linux kernel is:',"");
$kernel[] = new Kernel("beta-snapshot",'The latest <a href="snapshot.html">snapshot<\/a> for the beta Linux kernel tree is:',"beta");
$kernel[] = new Kernel("2.2",'The latest 2.2 version of the Linux kernel is:',"");
$kernel[] = new Kernel("2.0",'The latest 2.0 version of the Linux kernel is:',"");
$kernel[] = new Kernel("2.0-prepatch",'The latest <a href="prepatch.html">prepatch<\/a> for the 2.0 Linux kernel tree is:',"2.0");
$kernel[] = new Kernel("stable-ac",'The latest <a href="acpatch.html">-ac patch<\/a> to the stable Linux kernels is:',"stable");
$kernel[] = new Kernel("beta-ac",'The latest <a href="acpatch.html">-ac patch<\/a> to the beta Linux kernels is:',"beta");
$kernel[] = new Kernel("beta-dj",'The latest <a href="djpatch.html">-dj patch<\/a> to the beta Linux kernels is:',"beta");
$data = join("",file($k_list_url));
$pos1 = strpos($data,'<A NAME="versions">');
$pos2 = strpos($data,'<CENTER>',$pos1);
$len = $pos2-$pos1;
$data = substr($data,$pos1,$len);
$data = strip_tags($data,"<a>");
//$data = str_replace("\n"," ",$data);
//$data = str_replace("\r"," ",$data);
$data = str_replace(" "," ",$data);
$regex = '\s+<a href="\/([^<> \r\n]+[^\. \r\n"\'])">\s*(\d\.\d+\.\d+-?[-\w]*)\s*<\/a>'; // patchurl and version
$regex .= '\s*(\d{4}-\d{2}-\d{2} \d{2}:\d{2} \w{3})'; // moddate
$regex .= '\s*(<a href="\/([^<> \r\n]+[^\. \r\n"\'])">\s*F\s*<\/a>)?'; // srcurl
for ($i=0; $i<count($kernel); $i++) {
$mreg = "/" . $kernel[$i]->id . $regex . "/";
if (preg_match($mreg, $data, $matches)) {
$kerenl[$i]->pathurl = $k_list_url . $matches[1];
$kernel[$i]->version = $matches[2];
$kernel[$i]->moddate = $matches[3];
if (empty($kernel->parent))
$kernel[$i]->srcurl = $k_list_url . $matches[5];
}
}
function getKernelInfo($name) {
global $kernel;
$result = false;
for ($i=0; $i<count($kernel); $i++) {
if ($kernel[$i]->name == $name) {
$result = $kernel[$i];
break;
}
}
return $result;
}
?>
|
Tobias McNulty Powered by ViewCVS 1.0-dev |
ViewCVS and CVS Help |