Autor Zpráva
VIPatrikPK
Profil
Ahoj potreboval by som php skript čo by sa prihlásil do FTP a kontroloval či sa daný súbor nezväčšil a keď áno tak obnovný stránku .
Koľko to stojí ?

Ďakujem
Ugo
Profil
Myslím, že jste vložil požadavek do špatné sekce, nicméně nemělo by to být nic složitého, pokud se jedná o normální ftp kam se dá přistoupit bez potíží s proxy atp. tak je to práce na pár minut. (Jestli správně chápu požadavek)
VIPatrikPK
Profil
Aha ok a koľko by to stálo.

Ja som si myslel že PHP ide do PHP.
SeparateSK
Profil
Najprv si vytvor súbor : status.php
<?php
$subor = 'subor ,ktoreho velkost chces zistit';
$server="tvojastranka.sk";
$uMeno="FTP_MENO";
$uHeslo="FTP_HESLO";
$pripojenie = ftp_connect($server);
$login_result = ftp_login($pripojenie,$uMeno,$uHeslo);
$fs = ftp_size($pripojenie, $subor);
if ($fs != -1) {
    echo "$fs";
} else {
    echo "0";
}
ftp_close($pripojenie);
?>
Toto je script,ktorý zobrazuje velkosť súboru, ktorý potrebuješ. - uprav si to ako chceš.
Tento súbor musí vypisovať len velkosť súboru, nič iné !!! - Žiadne veci ako napr "Velkost suboru je : ..."

A potom do súboru, ktorý potrebuješ aby sa refreshoval napíš:
<script>
var fsa,fs=0;
var loc="";
var udalost=false;
function fsize(){
    var x;
    if (this.XMLHttpRequest)
            {
                x=new XMLHttpRequest();
            }
        else
            { 
                x=new ActiveXObject("Microsoft.XMLHTTP");
            }
        x.onreadystatechange=function()
            {
                if (x.readyState==4 && x.status==200)
                    {                
                        fsa=x.responseText;                        
                        if(fsa>fs&&fs!="0") udalost=true;    
                        else if(fsa<fs&&fs!="0") udalost=true;
                        fs=x.responseText;                                    
                    }
            }
        x.open("GET","status.php",true);
        x.send();
        if(udalost) {
            loc=location.href;
            location.href=loc;
            udalost=false;
        }
}
setInterval(fsize,1000);
</script>
<?php include("status.php"); ?>

FTP informacie ($server , $uMeno, $uHeslo) si uprav.
czechiaa
Profil *
Zdravím,
byla by nějaké možnost přidat do tohoto kódu i to, aby se mi za číslem zobrazovala jednotka (B, KB, atp.) ?
Nechci to psát ručně do toho, ale aby to samo zjistilo, protože tento script mi vypisuje jen velikost v čísle :/

Předem díky ;-)
Tori
Profil
Na začátek toho PHP souboru přidejte funkci
function format_bytes($a_bytes)
{
    if ($a_bytes < 1024) {
        return $a_bytes .' B';
    } elseif ($a_bytes < 1048576) {
        return round($a_bytes / 1024, 2) .' kB';
    } elseif ($a_bytes < 1073741824) {
        return round($a_bytes / 1048576, 2) . ' MB';
    } else {
        return round($a_bytes / 1073741824, 2) . ' GB';
    } 
}
a řádek č.10 v tom samém souboru změňte na echo format_bytes($fs); (funkce je zkopírovaná z komentáře v manuálu)
SeparateSK
Profil
súbor kde sa má stránka refreshovat zmeníš na :
<script>
var fsa,fs,start=0;
var loc,fsb="";
var udalost=false;
function fsize(){
    var x;
    if (this.XMLHttpRequest)
            {
                x=new XMLHttpRequest();
            }
        else
            { 
                x=new ActiveXObject("Microsoft.XMLHTTP");
            }
        x.onreadystatechange=function()
            {
                if (x.readyState==4 && x.status==200)
                    {                
                        fsa=x.responseText; 
                        fsa=fsa.replace(/B|kB|MB|GB|TB/ig,"");
                        fsb=x.responseText;
                        start+=1;
                        if(start==1) document.getElementById('velkost').innerText=fsb;                     
                        if(fsa>fs&&fs!="0") udalost=true;    
                        else if(fsa<fs&&fs!="0") udalost=true;
                        fs=x.responseText; 
                        fs=fs.replace(/B|kB|MB|GB|TB/ig,"");                                   
                    }
            }
        x.open("GET","status.php",true);
        x.send();
        if(udalost) {
            loc=location.href;
            // location.href=loc;
            document.getElementById('velkost').innerText=fsb;
            udalost=false;
        }
}
fsize();
setInterval(fsize,1000);
</script>
<div id="velkost">0,0B
</div>
Pre pochopenie:
fs=file size(velkost suboru - neaktualna),fsa=file size aktualna,fsb=file size aj s bajtami
prečo mám fsa a fs a aký je tam rozdiel:
fsa=aktuálna napr 32 a fs=neaktuálna napr 0, takže ak fsa>fs alebo fsa<fs ,tak zmení informácie o velkosti
- preto je tu tento update, lebo to musí odstrániť B,kB,MB,GB,TB z fsa a z fs
- update : stránka sa nerefreshuje, automaticky updatuje daný "div" , ak chceš ,aby sa refreshla odstrán "//"
status.php - s použitím funkcie od Tori:
<?php
function format_bytes($a_bytes)
{
    if ($a_bytes < 1024) {
        return $a_bytes .'B';
    } elseif ($a_bytes < 1048576) {
        return round($a_bytes / 1024, 2) .'kB';
    } elseif ($a_bytes < 1073741824) {
        return round($a_bytes / 1048576, 2) . 'MB';
    } else {
        return round($a_bytes / 1073741824, 2) . 'GB';
    } 
}
$subor = 'public_html/SUBOR.BLABLA';
$server="STRANKA.SK";
$uMeno="MENO";
$uHeslo="HESLO";
$pripojenie = ftp_connect($server);
$login_result = ftp_login($pripojenie,$uMeno,$uHeslo);
$fs = ftp_size($pripojenie, $subor);
if ($fs != -1) {
    echo format_bytes($fs);
} else {
    echo "0";
}
ftp_close($pripojenie);
?>
czechiaa
Profil *
použito, funkční ... díky :-)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: