Avatar billede moine Nybegynder
03. november 2003 - 13:53 Der er 8 kommentarer og
1 løsning

vise dato for seneste ændring for fil på en remote server

Har en fil (master.pdf) til at ligge på en server (civil.auc.dk) der ikke kører php og har så et link til denne fra min hjemmeside (hvor jeg kan køre php).

Jeg kunne godt tænke mig at der ved siden af linket til filen stod hvornår den sidst var blevet opdateret og har fundet en stump kode der kan dette... problemet er bare at denne kode også returnerer en hel masse andet nonsens og jeg kun har brug for datoen for den seneste ændring.

Koden ser således ud:

$domain = "www.civil.auc.dk";
$file = "/~nigo03/projekt/master.pdf";

$fp = fsockopen ($domain, 80, $errno, $errstr, 30);

$header = "HEAD $file HTTP/1.0\r\n\r\n";

if (!$fp) {
    echo "$errstr ($errno)";
} else {
    fputs ($fp, "$header");
    while (!feof($fp)) {
        $output .= fgets ($fp,128);
    }
    fclose ($fp);
}

echo $output;

og outputtet af den kan ses på http://www.nigo.dk/projekt/test.php

Hvordan får jeg skåret alt det nonsens væk så den kun viser datoen? Og nej... selv om det måske ville være lettere kan jeg ikke have filen til at ligge på samme server som min hjemmeside...

på forhånd tak...
Avatar billede detox Nybegynder
03. november 2003 - 14:09 #1
<?
$domain = "www.civil.auc.dk";
$file = "/~nigo03/projekt/master.pdf";

$fp = fsockopen ($domain, 80, $errno, $errstr, 30);

$header = "HEAD $file HTTP/1.0\r\n\r\n";

if (!$fp) {
    echo "$errstr ($errno)";
} else {
    fputs ($fp, "$header");
    while (!feof($fp)) {
        $line = fgets ($fp,128);
        if (preg_match("|^Last-Modified:|",$line)) $output = $line;
    }
    fclose ($fp);
}

echo $output;
?>
Avatar billede detox Nybegynder
03. november 2003 - 14:11 #2
Eller hvis du kun vil have selve datoen:

<?
$domain = "www.civil.auc.dk";
$file = "/~nigo03/projekt/master.pdf";

$fp = fsockopen ($domain, 80, $errno, $errstr, 30);

$header = "HEAD $file HTTP/1.0\r\n\r\n";

if (!$fp) {
    echo "$errstr ($errno)";
} else {
    fputs ($fp, "$header");
    while (!feof($fp)) {
        $line = fgets ($fp,128);
        if (preg_match("|^Last-Modified:(.+)|", $line, $match)) $output = $match[1];
    }
    fclose ($fp);
}

echo $output;
?>
Avatar billede moine Nybegynder
03. november 2003 - 14:20 #3
ja ok... vi nærmer os - men det skal være datoen og kun datoen som f.eks. 03/11 - ikke klokkeslet og alt muligt andet
Avatar billede detox Nybegynder
03. november 2003 - 14:23 #4
Så prøv med:

<?
$domain = "www.civil.auc.dk";
$file = "/~nigo03/projekt/master.pdf";

$fp = fsockopen ($domain, 80, $errno, $errstr, 30);

$header = "HEAD $file HTTP/1.0\r\n\r\n";

if (!$fp) {
    echo "$errstr ($errno)";
} else {
    fputs ($fp, "$header");
    while (!feof($fp)) {
        $line = fgets ($fp,128);
        if (preg_match("|^Last-Modified:(.+)|", $line, $match)) {
            $output = date("d/m",strtotime($match[1]));
        }
    }
    fclose ($fp);
}

echo $output;
?>
Avatar billede moine Nybegynder
03. november 2003 - 14:29 #5
smukt.... kan du så skynde dig at oprette det som et svar så du kan få dine point :o)
Avatar billede detox Nybegynder
03. november 2003 - 14:31 #6
Sure c",)
Avatar billede buck Nybegynder
04. februar 2004 - 13:33 #7
Tillægsspørgsmål:
Jeg kan fint bruge ovenstående eksempel til at vise dato og klokkeslet for mine filer, men kan man få den til at vise det i dansk dato-format?
Avatar billede detox Nybegynder
04. februar 2004 - 20:14 #8
Manualen er din ven. Du kan se alle date()'s forskellige formateringsmuligheder her:

http://dk2.php.net/manual/en/function.date.php
Avatar billede buck Nybegynder
07. februar 2004 - 09:00 #9
Tak for det...
det blev til
if (preg_match("|^Last-Modified:(.+)|", $line, $match)) {
            $output = date("j. M. Y, G:i",strtotime($match[1]));
Den viser datoen som
5. Feb. 2004, 15:25
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester