Файл: ftp/system/func.php
Строк: 181
<?php
// ftp by jasis//
function int($val){
$view=str_replace('-','',(int)$val);
return $view;
}
//Функция на главную
function error($one,$url,$name){
$view='<div>'.$one.'</div><a href="'.$url.'">'.$name.'</a></div>';
return $view;
}
//Функция кодировки урл on
function bon($code){
$view=base64_encode($code);
return $view;
}
//Функция кодировки урл off
function boff($code){
$view=base64_decode($code);
return $view;
}
function dechm($schm) {
$n1=0; $n2=0; $n3=0; $ar=array(4,2,1);
for ($chi=1;$chi<=3;$chi++) {if ($schm[$chi]<>"-") {$n1=$n1+$ar[$chi-1];}}
for ($chi=4;$chi<=6;$chi++) {if ($schm[$chi]<>"-") {$n2=$n2+$ar[$chi-4];}}
for ($chi=7;$chi<=9;$chi++) {if ($schm[$chi]<>"-") {$n3=$n3+$ar[$chi-7];}}
return $n1.$n2.$n3;
}
function verh($url){
$view='';
$ex=explode('/',$url);
$cou=count($ex)-2;
for($i=0; $i<$cou; $i++){
if($cou-1==$i) $v=$ex[$i]; else $v=$ex[$i].'/';
$view.=$v;
}
return $view;
}
function verh2($url){
$view='';
$ex=explode('/',$url);
$cou=count($ex)-1;
for($i=0; $i<$cou; $i++){
if($cou-1==$i) $v=$ex[$i]; else $v=$ex[$i].'/';
$view.=$v;
}
return $view;
}
//Удаление папки ftp
function rdir($conn,$dir) {
ftp_chdir($conn,$dir);
$arr=ftp_nlist($conn,"."); $ctns=count($arr); if ($ctns>700) {$ctns=700;}
for ($i=0;$i<$ctns;$i++) {$fl=$dir."/".$arr[$i];
if ((ftp_size($conn,$fl)==-1)&&(preg_replace("~.*/([^/]*)~m","\1",$fl)<>".")&&
(preg_replace("~.*/([^/]*)~m","\1",$fl)<>"..")) {rdir($conn,$fl);}
else {@ftp_delete($conn,$fl);}
} ftp_chdir($conn,"/");
@ftp_delete($conn,$dir."/".".htaccess");
if (ftp_rmdir($conn,$dir)) {return true;} else {return false;}
}
//Очистка папки ftp
function cdir($conn,$dir) {
ftp_chdir($conn,$dir);
$arr=ftp_nlist($conn,"."); $ctns=count($arr); if ($ctns>700) {$ctns=700;}
for ($i=0;$i<$ctns;$i++) {$fl=$dir."/".$arr[$i];
if ((ftp_size($conn,$fl)==-1)&&(preg_replace("~.*/([^/]*)~m","\1",$fl)<>".")&&
(preg_replace("~.*/([^/]*)~m","\1",$fl)<>"..")) {rdir($conn,$fl);}
else {@ftp_delete($conn,$fl);}
} ftp_chdir($conn,"/");
@ftp_delete($conn,$dir."/".".htaccess");
if (ftp_chdir($conn,$dir)) {return true;} else {return false;}
}
//Удаление папки server
function sdir($dir) {
if ($handle=opendir($dir)) {
while (($file=readdir($handle))<>false) {
if (is_file($dir."/".$file)) {
if ($file<>'crbook.zip') {
chmod($dir."/".$file,0777); unlink($dir."/".$file);
}
}
elseif (is_dir($dir."/".$file)&&($file<>".")&&($file<>".."))
{chmod($dir."/".$file,0777); sdir($dir."/".$file);}
} closedir($handle);
chmod($dir,0777);
if (rmdir($dir)) {return true;} else {return false;}
}
}
//Переименовывание папкифайла
function ftprename($url){
$view='';
$ex=explode('/',$url);
$cou=count($ex)-1;
$view=$ex[$cou];
unset($ex);
return $view;
}
function ftprename2($url){
$view='';
$ex=explode('/',$url);
$cou=count($ex);
for($i=0; $i<$cou; $i++){
if($cou-1==$i) $v=''; else $v=$ex[$i].'/';
$view.=$v;
}
return $view;
}
//Функция просмотра и выбора
function ftpall($serv,$f,$d){
$view='';
if(empty($d)) $d='/'; else $d=$d.'/';
if($d!="/"){ $view.='<img src="img/back.png" alt="<"> <a href="ftp.php">В начало</a><br>
<img src="img/back.png" alt=".."> <a href="ftp.php?d='.verh($d).'">Вверх</a><br><br>';
$view.='<div><a href="'.$f.'&go=1&did='.$d.'">Выбрать</a></div>';}
ftp_pasv($serv,true);
$lines = ftp_rawlist($serv, "$d");
// закрытие соединения
ftp_close($serv);
if($lines==false){
$view.='<div>Не верный путь</div>';
}else{
$couf=0; $coud=0;
// вывод буфера
for ($i=0;$i<count($lines);$i++) {
$name=preg_replace("~([^s]*[s]*){8}s{1}(.*)~m","\2",$lines[$i]);
if ($name!="." && $name!=".." && !preg_match('/->/i',$name)){
$chm=preg_replace("~([^s]*).*~m","\1",$lines[$i]);
if ($chm[0]=="-") {
if($name==".htaccess") $nams='<span style="color: #ff0000;">'.$name.'</span>'; else $nams=$name;
$view.=$nams.'<br>';
$couf++;
}else{
$view.='<img src="img/dir.gif" alt="*">';
$view.=' <a href="'.$f.'&did='.$d.$name.'">'.$name.'</a><br>';
$coud++;
}
}
}
if($couf == 0 && $coud == 0) $view.='Папка пуста<br>';
$view.='<div>Папок: '.$coud.' / Файлов: '.$couf.'</div>';
}
return $view;
}
function sizer($s)
{
$o=1;
while($s>1024){
$s=round($s/1024,1);
$o++;
}
switch($o){
case(1):
$o='b';
break;
case(2):
$o='Kb';
break;
case(3):
$o='Mb';
break;
case(4):
$o='Gb';
break;
}
return $s.$o;
}
function scan($dir) {$arr=NULL; $lst=NULL;
$dh=opendir($dir); while (false!==($filename=readdir($dh))) {$lst[]=$filename;}
if ($lst<>NULL) {
for ($i=0;$i<count($lst);$i++) {
if (is_file($dir."/".$lst[$i])) {
$arr.="1:".$dir."/".$lst[$i]."||";
} elseif ((is_dir($dir."/".$lst[$i]))&&($lst[$i]<>".")&&($lst[$i]<>"..")) {
$arr.="0:".$dir."/".$lst[$i]."||"; $arr.=scan($dir."/".$lst[$i]);
}
} return $arr;
} else {return false;}
}
function ftpscan($ftp,$dir,$kl=100,$sz=3145728) {
$arr=NULL; $ckl=0; $csz=0; @ftp_chdir($ftp,$dir);
if ($lst=@ftp_nlist($ftp,".")) {
for ($i=0;$i<count($lst);$i++) {$ckl++;
if ($ckl>$kl) {$ckl--; $arr['err']="ck"; break;}
$fnm=trim($lst[$i]);
if (strpos($fnm,$dir)!==0) {$fnm=str_replace('//','/',$dir.'/'.$fnm);}
$fln=preg_replace("~.*/([^/]*)~","\1",$fnm);
if (($fln<>".")&&($fln<>"..")) {
$size=ftp_size($ftp,$fnm); $csz=$csz+$size;
if ($csz>=$sz) {$csz=$csz-$size; $ckl--; $arr['err']="sz"; break;}
if ($size===-1) {
$arr['d'][]=$fnm;
if ($lt=ftpscan($fnm,$kl-$ckl,$sz-$csz)) {
$arr=array_merge_recursive($arr,$lt);
if ($lt['sz']>0) {$csz=$csz+$lt['sz'];} $ckl=$ckl+$lt['ck'];
}
} else {$arr['f'][]=$fnm;}
}
}
$arr['sz']=$csz; $arr['ck']=$ckl;
return $arr;
} else {return false;}
}
?>