/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Sidst ændret
Fra : Niels


Dato : 23-11-04 15:22

Hvordan kan jeg se hvornår en fil sidst er blevet ændret?
Altså med PHP, så den viser det i dokumentet.
Hvis jeg foreksepel vil have den til at vise hvornår en *.txt-fil sidst er
blevet ændret.

--
Mvh. Niels (http://niels.spoweb.dk)
http://niels.spoweb.dk/noop - Søgemaskine



 
 
Bertel Lund Hansen (23-11-2004)
Kommentar
Fra : Bertel Lund Hansen


Dato : 23-11-04 15:48

Niels skrev:

>Hvordan kan jeg se hvornår en fil sidst er blevet ændret?
>Altså med PHP, så den viser det i dokumentet.

   $filename='minheltegen.fil';
   $dato=date('j/n-Y.',filemtime($filename));
   echo "Sidst ændret: $dato\n";

Mere info: http://dk2.php.net/manual/en/function.date.php

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

Leonard (23-11-2004)
Kommentar
Fra : Leonard


Dato : 23-11-04 16:06

Bertel Lund Hansen <nospamius@lundhansen.dk> wrote:

>>Hvordan kan jeg se hvornår en fil sidst er blevet ændret?

>   $dato=date('j/n-Y.',filemtime($filename));

Når det nu er ændringen du vil have tid på må det være filectime() du
skal bruge.

--
med venlig hilsen
Leonard - http://leonard.dk/

Bertel Lund Hansen (23-11-2004)
Kommentar
Fra : Bertel Lund Hansen


Dato : 23-11-04 16:18

Leonard skrev:

>Når det nu er ændringen du vil have tid på må det være filectime() du
>skal bruge.

Det kommer an på om man oversætter "ændret" til "changed" eller
"modified":

Fra manualen:
Note: In most Unix filesystems, a file is considered changed when
its inode data is changed; that is, when the permissions, owner,
group, or other metadata from the inode is updated. See also
filemtime() (which is what you want to use when you want to
create "Last Modified" footers on web pages) and fileatime().

Jeg tror det skal være "modified".

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

Arne Feldborg (23-11-2004)
Kommentar
Fra : Arne Feldborg


Dato : 23-11-04 16:33

Bertel Lund Hansen <nospamius@lundhansen.dk> skrev Tue, 23 Nov 2004
15:48:05 +0100

>>Hvordan kan jeg se hvornår en fil sidst er blevet ændret?
>>Altså med PHP, så den viser det i dokumentet.
>
>   $filename='minheltegen.fil';
>   $dato=date('j/n-Y.',filemtime($filename));
>   echo "Sidst ændret: $dato\n";
>
Skal være: filectime($filename)


--
mvh, A:\Feldborg

Folketællinger Hammerum og Bølling herreder, kirkebøger Hammerum herred
http://www.haunstrup.dk/feldborg/genealogi/download/

Peter Brodersen (23-11-2004)
Kommentar
Fra : Peter Brodersen


Dato : 23-11-04 17:18

On Tue, 23 Nov 2004 16:33:28 +0100, Arne Feldborg
<feldborg@haunstrup.dk> wrote:

>Skal være: filectime($filename)

Det er vel ikke interessant at datoen opdateres, blot fordi filen har
været flyttet rundt, rettighederne har været ændret eller lignende?
Jeg antager, at det ikke er inode-informationerne, der er de spændende
her.

Jeg ville bruge filemtime() i det tilfælde.

--
- Peter Brodersen

Arne Feldborg (23-11-2004)
Kommentar
Fra : Arne Feldborg


Dato : 23-11-04 23:27

Peter Brodersen <usenet@ter.dk> skrev Tue, 23 Nov 2004 17:17:39 +0100


>>Skal være: filectime($filename)
>
>Det er vel ikke interessant at datoen opdateres, blot fordi filen har
>været flyttet rundt, rettighederne har været ændret eller lignende?
>Jeg antager, at det ikke er inode-informationerne, der er de spændende
>her.
>
Der er åbenbart lidt forskel på Unix og Windows her.

>Jeg ville bruge filemtime() i det tilfælde.
>
OK.


--
mvh, A:\Feldborg

Folketællinger Hammerum og Bølling herreder, kirkebøger Hammerum herred
http://www.haunstrup.dk/feldborg/genealogi/download/

Peter Brodersen (23-11-2004)
Kommentar
Fra : Peter Brodersen


Dato : 23-11-04 23:47

On Tue, 23 Nov 2004 23:26:45 +0100, Arne Feldborg
<feldborg@haunstrup.dk> wrote:

>>Det er vel ikke interessant at datoen opdateres, blot fordi filen har
>>været flyttet rundt, rettighederne har været ændret eller lignende?
>>Jeg antager, at det ikke er inode-informationerne, der er de spændende
>>her.
>>
>Der er åbenbart lidt forskel på Unix og Windows her.

Det oplever jeg ikke.

Jeg har lige oprettet en fil i Windows og testet med PHP4. Når jeg
retter i filen, ændrer outputtet af filemtime() sig, mens filectime()
ikke ændrer sig. Det er vel forventet - og her er det også outputtet
fra filemtime(), der er det ønskede.

Så filemtime() lader til at fungere tilsvarende på Windows og under
unix.


Derimod er der en forskel i opførslen på filectime(). Hvor den under
unix rigtigt nok rapporterer ændringen i inode'n, rapporterer den
under Windows blot oprettelsestidspunktet. Jeg kan ikke ændre
filectime()-tidspunktet under Windows, uanset om jeg ændrer flag,
omdøber filen, kopierer filen, etc.

Det hører nok med til historien, at Windows (eller NTFS om man vil)
blot noterer, hvornår filen er ændret, og ikke som under unix (for det
relevante filsystem) skelner mellem ændringer i filen eller ændringer
i filens metadata). Omvendt set er der ingen informationer om
oprettelsestidspunkt under unix (sikkert igen kun rigtigt for bestemte
filsystemer).


Så hvis man bruger filectime() under Windows, så vil den dato aldrig
ændre sig. Hvis man bruger filectime() under unix, risikerer man, at
den ændrer sig, hvis man ændrer i metadataen. Det er i begge tilfælde
noget rod - men heldigvis virker filemtime() som forventet både under
Windows og unix :)

--
- Peter Brodersen

Arne Feldborg (24-11-2004)
Kommentar
Fra : Arne Feldborg


Dato : 24-11-04 00:11

Peter Brodersen <usenet@ter.dk> skrev Tue, 23 Nov 2004 23:47:13 +0100

>Så hvis man bruger filectime() under Windows, så vil den dato aldrig
>ændre sig. Hvis man bruger filectime() under unix, risikerer man, at
>den ændrer sig, hvis man ændrer i metadataen. Det er i begge tilfælde
>noget rod - men heldigvis virker filemtime() som forventet både under
>Windows og unix :)
>
Endnu engang OK.

Min pointe var sådan set bare at man vel normalvis ikke flytter rundt på
en fil medmindre det er fordi man enten har ændret indholdet i filen,
eller fordi man har ændret det overordnede layout. Og som sådan er det
vel acceptabelt at det bliver registreret som en ændring

Og at man under Windows ihvertfald ikke går rundt og ændrer
filerettigheder i tide og utide (om dét så er en fordel eller en ulempe
er jo en helt anden diskussion som ikke hører hjemme her).

Men ja, filemtime() vil være mere pålideligt under Unix og give ca. det
samme resultat under Windows - så fint nok.


--
mvh, A:\Feldborg

Folketællinger Hammerum og Bølling herreder, kirkebøger Hammerum herred
http://www.haunstrup.dk/feldborg/genealogi/download/

Bertel Lund Hansen (23-11-2004)
Kommentar
Fra : Bertel Lund Hansen


Dato : 23-11-04 18:47

Arne Feldborg skrev:

>Skal være: filectime($filename)

Se mit svar til Leonard.

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

Dennis Madsen (02-12-2004)
Kommentar
Fra : Dennis Madsen


Dato : 02-12-04 15:47

Jeg bruger:

<?php
echo date ('H:i d-m-Y', getlastmod());
?>

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Peter Brodersen (03-12-2004)
Kommentar
Fra : Peter Brodersen


Dato : 03-12-04 02:24

On 02 Dec 2004 14:46:58 GMT, Dennis Madsen <dennis61@get2net.dk>
wrote:

><?php
>echo date ('H:i d-m-Y', getlastmod());
>?>

Det virker dog kun for den aktuelle side, der hentes - den oprindelige
spørger ville gerne have tidspunktet for en anden fil, for eksempel en
tekstfil.

--
- Peter Brodersen

Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408942
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste