запись файла по ftp через fopen()

<?php
/*
запись файла по ftp через fopen()
*автор: nc_soft
*25.08.07
*/

$user='test.wen.ru'; //юзер
$pass='xxxxxxxxxx'; //пароль
$host='wen.ru'; //хост без префикса
$file='new_file.html'; //имя файла (не должен существовать)

$f=fopen("ftp://$user:$pass@$host/$file",'w'); //открываем в режиме w (с w+ не получится), если предполагается записывать данные, то лучше открывать в режиме wb (бинарный)
fwrite($f,'<html><body>тестовая страница</body></html>'); //запишем тестовую страницу
fclose($f); //закрываем

/*если такой файл уже существует, то запись не произойдет*/
?>
25 августа 2007, 22:13

простой текстовый счетчик на файле

<?php
/*
простой текстовый счетчик на файле
*автор: nc_soft
16.06.07
*/

$ua=$_SERVER['HTTP_USER_AGENT']; //браузер
$ip=$_SERVER['REMOTE_ADDR']; //ip

$uniq=serialize(array($ip,$ua))."\n"; //упакованные данные

$store='./counter/counter.dat'; //файл-хранилище, права 666 и выше

$offset=8*3600; //смещение по времени в секундах (у моего хостера +8 часов от Москвы)
$date_now=date('d',time()+$offset); //сегодняшнее число
$date_access=date('d',filemtime($store)+$offset); //время последней модификации файла

if ($date_now!=$date_access && file_exists($store))
{
    //если даты не совпадают, то пора обнулить счетчик, удаляем файл (для директории надо выставить права 766)
    unlink($store);
}

if (!file_exists($store))
{
    //если файла данных не существует

    $hit=1;
    $host=1;
}
else
{
    //получаем стоки из файла
    $data=file($store);
    $data[]=$uniq; //добавляем к данным текущего юзера

    $hit=count($data); //сколько строк, столько и хитов

    //считаем хосты
    $ip_ua=array();
    $ip_ua[]=$uniq; //запихиваем текущего юзера

    foreach ($data as $v)
    {
        if (!in_array($v,$ip_ua)) //если такой комбинации нет, то
        $ip_ua[]=$v; //увеличиваем уникальные записи
    }

    $host=count($ip_ua); //число уникальных строк

}

//теперь записываем все в файл
$f=fopen($store,'a+'); //создаем/открываем
flock($f,2); //блокируем
fwrite($f,$uniq); //записываем упакованный массив
fclose($f); //закрываем (блокировка снимется сама)

echo $host;
echo '/';
echo $hit;

?>
25 августа 2007, 22:10