Um dem ganzen noch die Krone aufzusetzen, falls jemand das auf einem Webserver ohne allow_url_fopen, aber mit CURL ausführen möchte
Und falls es jemand braucht, einfach Proxy angeben und auskommentieren.
Zwar unnötig, aber vielleicht interessant für manche.
PHP
<?php
set_time_limit(0);
define('ICON_DIR', './icons');
$type = null;
$breakCounter = 0;
$iconCounter = 0;
$id = 0;
if(ini_get('allow_url_fopen')) {
$type = 'fopen';
} elseif (function_exists('curl_version')) {
$type = 'curl';
$curl = curl_init();
//curl_setopt($curl, CURLOPT_PROXY, 'proxy:port');
//curl_setopt($curl, CURLOPT_PROXYUSERPWD, 'username:password');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
} else {
die('Isn\'t working on this webserver!');
}
if (!file_exists(ICON_DIR)) {
mkdir(ICON_DIR, 777);
}
echo 'Starting download..' . PHP_EOL;
while ($breakCounter < 20) {
if($type == 'fopen') {
$icon = @file_get_contents('http://habboo-a.akamaihd.net/c_images/catalogue/icon_'.++$id.'.png');
} elseif($type == 'curl') {
curl_setopt($curl, CURLOPT_URL, 'http://habboo-a.akamaihd.net/c_images/catalogue/icon_'.++$id.'.png');
$icon = curl_exec($curl);
$info = curl_getinfo($curl);
$err = curl_error($curl);
if($info['http_code'] !== 200) {
$icon = null;
if(!empty($err)) {
curl_close($curl);
die($err);
}
}
}
if($icon == null) {
++$breakCounter;
continue;
} elseif($breakCounter > 0) {
$breakCounter = 0;
}
file_put_contents(ICON_DIR . '/icon_'.$id.'.png', $icon);
++$iconCounter;
}
if($type == 'curl') curl_close($curl);
echo 'Successfully downloaded ' . $iconCounter . ' icons.';
?>
Alles anzeigen
so far
Yannici