Появилась тут потребность сделать локальный сервер обновлений AD-Aware, так как для тысячи клиентов скачивать по 700 килобайт очень накладно.
В следствии чего родился следующий скрипт:
=============начало файла===============================
Код: <?
/*
+ ---------------------------------------------------------------------------------+
| LavaSoft Ad-Aware Local NetWork Update Server Script
|
| Write By Angpeu Cycypa
| e-mail:cycypa(a)gmail.com
|
http://www.onet.ru |
| $Source: /cvsroot/adawareupdate.php,v $
| $Revision: 0.1 $
| $Date: 2006/05/19 12:22:00 $
| $Author: cycypa $
+----------------------------------------------------------------------------------+
*/
//Переменные необходимые для работы.
$inetwufile = "http://download.lavasoft.de.edgesuite.net/public/wu.dat";
$localwufile = "wu.dat";
$updateurl = "http://download.lavasoft.de.edgesuite.net/public/defs.ref";
$localdef = "defs.ref";
//Получаем настройки с сайта и записываем их в массив.
$fd = fopen($inetwufile, "r");
if(!$fd)
{
echo("$inetwufile File open error<br />");
}
else
{
while (!feof($fd))
{
$netstr = fgets($fd);
$wunet[] = $netstr;
}
}
fclose($fd);
//Получаем настройки с локального диска и записываем их в массив.
$fd = fopen($localwufile, "r");
if(!$fd)
{
echo("$localwufile File open error<br />");
}
else
{
while (!feof($fd))
{
$netstr = fgets($fd);
$wulocal[] = $netstr;
// echo ("<br/>$netstr");
}
}
fclose($fd);
//Сравниваем даты обновления
if ($wulocal[4] <> $wunet[4])
{
echo "<br/><b>Filestamp different</b>";
//Если конфиги различаются то обновляем локальный конфиг.
$fd = fopen($localwufile, "w+");
if(!$fd)
{
echo("$localwufile File open error <br />");
}
else
{
//меняем значения в локальном массиве
$wulocal[4] = $wunet[4];
$wulocal[5] = $wunet[5];
$wulocal[6] = $wunet[6];
// сохраняем измененный конфиг
foreach ($wulocal as $index => $val)
{
fputs($fd, $val);
echo("<br/>$index -> $val");
}
// Качаем новое обновление с сервера.
$putdata = fopen($updateurl, "r");
$fp = fopen($localdef, "w+");
while ($data = fread($putdata, 1024))
fwrite($fp, $data);
fclose($fp);
fclose($putdata);
echo "<br/>New Update Downloaded!";
}
}
else echo "<br/>No New Update!";
echo "<br/>Job Done";
?>