Ausgliederung aus dem Thema:
länderaddon update
Danke, hab Update gemacht :)
Druckbare Version
Ausgliederung aus dem Thema:
länderaddon update
Danke, hab Update gemacht :)
last update.php
interessant ist dabei, dass die zeit auch als timestamp zur verfügung steht!PHP-Code:
<?
function getRawHttpHeader($host,$doc)
{
$httpheader = "";
$fp = fsockopen ($host, 80, $errno, $errstr, 30);
if (!$fp)
{
echo "$errstr ($errno) \n";
}
else
{
fputs ($fp, "GET $doc HTTP/1.0\r\nHost: " . $host. "\r\n\r\n");
while (!feof($fp))
{
$httpresult = fgets ($fp,1024);
$httpheader = $httpheader.$httpresult;
if (ereg("^\r\n",$httpresult))
break;
}
fclose ($fp);
}
return $httpheader;
}
function getArrayHttpHeader($url)
{
$url = ereg_replace("http://","",$url);
$endHostPos = strpos($url,"/");
if (!$endHostPos)
$endHostPos = strlen($url);
$host = substr($url,0,$endHostPos);
$doc = substr($url,$endHostPos,strlen($url)-$endHostPos);
if ($doc=="")
$doc = "/";
$raw = getRawHttpHeader($host,$doc);
$tmpArray = explode("\n",$raw);
for ($i=0;$i<sizeof($tmpArray); $i++)
{
@list($name, $value) = explode(':', $tmpArray[$i], 2);
$array[trim($name)]=trim($value);
}
return $array;
}
$array = (getArrayHttpHeader("http://ip-to-country.webhosting.info/downloads/ip-to-country.csv.zip"));
// print_r($array);
// Display last updated timestamp
echo date("j F Y",strtotime($array['Last-Modified']));
?>
wget -q -N -P /tmp http://ip-to-country.webhosting.info...ountry.csv.zip
ist auch ganz nett :) lädt das file runter in tmp, wenn eine neue version verfügbar ist.
Gruß
:D
Könnte man doch dann auch so proggen das wenn eine neue Version verfügbar ist, das Ding automatisch updated ;)
wollt ich mich gerad dransetzen :)
aber ich erkenne aus deinem post raus, dass du dich bereiterklärst das zu übernehmen :)
/edit: da es doch nicht so einfach ist wie ich es mir vorgestellt habe, darfst du dich defenitiv der sache hingeben :D
hatte mir überlegt einfach
a) timestamp vom letzten update in TABLE `laendercode` zu speichern
b) bei neuer datei:
system/shell_exec("wget -q -N -P ".getcwd()." http://ip-to-country.webhosting.info/downloads/ip-to-country.csv.zip");
system/shell_exec("gunzip ip-to-country.csv.gz");
und dann halt den cron laufen zu lassen....
in der theorie sollte das doch gehen?!
Theoretisch sollte das gehen, allerdings sollte mane ine Lösung suchen ohne exec/system denn die wenigsten Hoster schalten den Endkunden exec frei.
hm, dann so vllt (php5)
LASTUPDATE = timestamp der letzten aktualisierungPHP-Code:
//unzip with PHP 5.2.0 or later (zlib)
function unzip($file)
{
$zip = new ZipArchive();
if ($zip->open($file) === TRUE) {
$zip->extractTo('./');
$zip->close();
echo 'Erfolgreich entzippt';
} else {
echo 'Konnte Zip nicht öffnen';
}
}
function getRawHttpHeader($host,$doc)
{
$httpheader = "";
$fp = fsockopen ($host, 80, $errno, $errstr, 30);
if (!$fp)
{
echo "$errstr ($errno) \n";
}
else
{
fputs ($fp, "GET $doc HTTP/1.0\r\nHost: " . $host. "\r\n\r\n");
while (!feof($fp))
{
$httpresult = fgets ($fp,1024);
$httpheader = $httpheader.$httpresult;
if (ereg("^\r\n",$httpresult))
break;
}
fclose ($fp);
}
return $httpheader;
}
function getArrayHttpHeader($url)
{
$url = ereg_replace("http://","",$url);
$endHostPos = strpos($url,"/");
if (!$endHostPos)
$endHostPos = strlen($url);
$host = substr($url,0,$endHostPos);
$doc = substr($url,$endHostPos,strlen($url)-$endHostPos);
if ($doc=="")
$doc = "/";
$raw = getRawHttpHeader($host,$doc);
$tmpArray = explode("\n",$raw);
for ($i=0;$i<sizeof($tmpArray); $i++)
{
@list($name, $value) = explode(':', $tmpArray[$i], 2);
$array[trim($name)]=trim($value);
}
return $array;
}
$array = (getArrayHttpHeader("http://ip-to-country.webhosting.info/downloads/ip-to-country.csv.zip"));
if (strtotime($array['Last-Modified'])> LASTUPDATE)
{
//Kopiere und entpacke neues update
if (copy("http://ip-to-country.webhosting.info/downloads/ip-to-country.csv.zip","ip-to-country.csv.zip"))
{
unzip("ip-to-country.csv.zip");
}
require(laenderupdate.int.php); // Cron ausführen
}
vllt kennt ja jmd von euch ne unzip-funktion die auch mit php4 funktioniert. war jetzt zu faul zu googlen :D
Ahh, das mit dem automatischen Update hab ich noch gar nicht bedacht:frusty:
Ich hatte mir vor 2 Tagen einen Cron geschrieben, der herunterlädt, automatisch entpackt und in die Datenbank lädt, aber ein automatisches Update oder das Ersparen der ganzen Schritte wär vl. auch nicht schlecht:yes:
*working*
so da ja alle hier so auf updatewahn sind meine version ist von september 08 und bisher kennt sie alle ip's so mal nebenbei.
Ich empfehle jedem User bzw Admin solange es keine problehme gibt das ip's die tatsächlich aus deutschland kommen nicht erkannt werden, gar kein Update zu machen.
MFg Lokutos
*dieser beitrag ist die persönliche meinung
vor allem ist es ja auch nicht so, dass man sich hier bei nem update was kaputtspielen kann, also..immer schön updaten ! :D