|
| Underlig opdateringsdato for hjemmesider Fra : Anders Boholdt-Peter~ |
Dato : 18-01-07 14:19 |
|
Hej,
Jeg har på mine sider indsat følgende koder, der burde gøre, at brugeren kan
se, hvornår jeg sidst har opdateret de enkelte sider:
---
<?php
// Sørg for at datoudskriften følger dansk standard.
setlocale(LC_ALL, 'danish');
echo "<p>".strftime("Denne side er sidst opdateret %d. %B %Y %H:%M:%S",
getlastmod())."</p>\n";
?>
---
Imidlertid oplever jeg, at opdateringsdatoen er forkert.
Jeg kalder siderne gennem en fil der hedder side.php, og med ovenstående
kode er det tilsyneladende opdateringsdatoen for filen side.php der bliver
vist i stedet for den aktuelle side.
Kalder man f.eks.
http://www.boholdt-petersen.dk/side.php?id=10
kan man se, at siden sidst er opdateret den 09. januar 2007.
Kalder man derimod adressen direkte
http://www.boholdt-petersen.dk/mobiltale.php
kan man se, at siden er opdateret i dag, hvilket er korrekt.
Er der nogle der har løsningsforslag til, hvoran man kan få vist
opdateringsdatoen for de enkelte sider, i stedet for at det er
opdateringsdatoen for filen side.php man ser?
På forhånd tak for eventuelle svar.
--
/ Anders
http://www.boholdt-petersen.dk
| |
Arne Feldborg (18-01-2007)
| Kommentar Fra : Arne Feldborg |
Dato : 18-01-07 23:49 |
|
"Anders Boholdt-Petersen" <post-REMOVETHIS-@boholdt-petersen.dk> skrev
Thu, 18 Jan 2007 14:18:53 +0100
>Imidlertid oplever jeg, at opdateringsdatoen er forkert.
>
Hvis der er tale om en anden fil (end den der præsenterer resultatet)
skal du bruge filemtime().
Her er et eksempel sakset direkte fra manualen:
<?php
$filename = 'somefile.txt';
if (file_exists($filename)) {
echo "$filename was last modified: " . date ("F d Y H:i:s.",
filemtime($filename));
}
?>
--
mvh, A:\Feldborg
Slægtsforskning og lokalhistorie i midt- vestjylland
http://hammerum-herred.dk/
| |
Anders Boholdt-Peter~ (20-01-2007)
| Kommentar Fra : Anders Boholdt-Peter~ |
Dato : 20-01-07 16:59 |
|
"Arne Feldborg" <feldborg@haunstrup.dk> skrev i en meddelelse
news:n4uvq2531rd8u84vi34l8rdqu97572cvkn@4ax.com...
> Hvis der er tale om en anden fil (end den der præsenterer resultatet)
> skal du bruge filemtime().
Kan man også her indsætte linien som jeg tidligere har postet, så
datoformatet bliver korrekt dansk?
--
/ Anders
http://www.boholdt-petersen.dk
| |
Jesper Brunholm (20-01-2007)
| Kommentar Fra : Jesper Brunholm |
Dato : 20-01-07 21:38 |
|
Anders Boholdt-Petersen skrev:
> "Arne Feldborg" <feldborg@haunstrup.dk> skrev i en meddelelse
> news:n4uvq2531rd8u84vi34l8rdqu97572cvkn@4ax.com...
>> Hvis der er tale om en anden fil (end den der præsenterer resultatet)
>> skal du bruge filemtime().
>
> Kan man også her indsætte linien som jeg tidligere har postet, så
> datoformatet bliver korrekt dansk?
Ja, det handler om at strftime() (ligesom date() i Arne Fs eksempel),
skal have et timestamp med som parameter.
Se gerne på http://dk.php.net/strftime og http://dk.php.net/date
Det timestamp kan man så få fra funktionen getlastmod() som giver
opdateringstiden på den fil hvis navn står i adresselinjen, eller man
kan få det fra filemtime() som i stedet kan give modified-timestamp på
en vilkårlig fil.
filemtime() og getlastmod() kan du også finde i manualen . Det korte
af det lange er at du kan udskifte getlastmod() med filemtime(X) - du
skal bare have filnavnet på den aktuelle side ind i stedet for X
(eventuelt med en variabel, __FILE__ er værd at undersøge...)
Mvh
Jesper Brunholm
| |
Anders Boholdt-Peter~ (22-01-2007)
| Kommentar Fra : Anders Boholdt-Peter~ |
Dato : 22-01-07 08:13 |
|
"Jesper Brunholm" <nospam@brunholm-scharff.dk> skrev i en meddelelse
news:45b27da4$0$49197$14726298@news.sunsite.dk...
> Ja, det handler om at strftime() (ligesom date() i Arne Fs eksempel), skal
> have et timestamp med som parameter.
Kan man bruge følgende kode, der så viser opdateringsdatoen for en vilkårlig
fil:
---
<?php
// Sørg for at datoudskriften følger dansk standard.
setlocale(LC_ALL, 'danish');
echo "<p>".strftime("Denne side er sidst opdateret %d. %B %Y %H:%M:%S",
getlastmod(filnavn.php))."</p>\n";
?>
---
--
/ Anders
http://www.boholdt-petersen.dk
| |
Jesper Brunholm (22-01-2007)
| Kommentar Fra : Jesper Brunholm |
Dato : 22-01-07 20:07 |
|
Anders Boholdt-Petersen skrev:
> Kan man bruge følgende kode, der så viser opdateringsdatoen for en vilkårlig
> fil:
>
> ---
> <?php
> // Sørg for at datoudskriften følger dansk standard.
> setlocale(LC_ALL, 'danish');
> echo "<p>".strftime("Denne side er sidst opdateret %d. %B %Y %H:%M:%S",
> getlastmod(filnavn.php))."</p>\n";
> ?>
Nej, som du kan se på http://dk.php.net/getlastmod (og som du har fået
at vide tidligere i tråden) skal du udskifte getlastmod() med filemtime.
Dernæst så skal filnavn.php afspejle navnet på den fil som du kalder
koden i, så når du står i kontakt.php så skal der stå
filemtime('kontakt.php')
osv.
Hvis du har et array til at lave id'erne om til filnavne (der står
side.php?id= osv i din adresselinje), kan du sikkert hente filnavnet som
der skal kaldes opdateringstid på, ved hjælp af det array og id-værdien.
Mvh
Jesper Brunholm
| |
Anders Boholdt-Peter~ (23-01-2007)
| Kommentar Fra : Anders Boholdt-Peter~ |
Dato : 23-01-07 08:50 |
|
"Jesper Brunholm" <nospam@brunholm-scharff.dk> skrev i en meddelelse
news:45b50b5f$0$49200$14726298@news.sunsite.dk...
> Nej, som du kan se på http://dk.php.net/getlastmod (og som du har fået at
> vide tidligere i tråden) skal du udskifte getlastmod() med filemtime.
Jeps.
Det har jeg nu forsøgt.
Jeg har kopieet selve datoformateringen ind, så det burde give samme
resultat, men det gør det ikke.
Eksempel fra filen avg.php:
---
<?php
// Sørg for at datoudskriften følger dansk standard.
setlocale(LC_ALL, 'danish');
$filename = 'avg.php';
if (file_exists($filename)) {
echo "siden er sidst opdateret" . date ("%d. %B %Y %H:%M:%S.",
filemtime($filename));
}
?>
---
Denne kode giver et noget sjovt resultat.
Hvis jeg blot kopierede koden fra manualen, og ovenover indsatte linierne
for korrekt dansk datoformat, fik jeg kun resultatet ud med engelsk
datoformat.
Hvor er det at jeg kludre i den (jeg vil gerne have, at ovenstående kode gør
at jeg får et dansk datoformat)?
Jeg har kikket i manualen, men blev ikke klogere.
--
/ Anders
http://www.boholdt-petersen.dk
>
> Dernæst så skal filnavn.php afspejle navnet på den fil som du kalder koden
> i, så når du står i kontakt.php så skal der stå
> filemtime('kontakt.php')
> osv.
>
> Hvis du har et array til at lave id'erne om til filnavne (der står
> side.php?id= osv i din adresselinje), kan du sikkert hente filnavnet som
> der skal kaldes opdateringstid på, ved hjælp af det array og id-værdien.
>
> Mvh
>
> Jesper Brunholm
| |
Arne Feldborg (23-01-2007)
| Kommentar Fra : Arne Feldborg |
Dato : 23-01-07 17:07 |
|
"Anders Boholdt-Petersen" <post-REMOVETHIS-@boholdt-petersen.dk> skrev
Tue, 23 Jan 2007 08:50:22 +0100
><?php
>// Sørg for at datoudskriften følger dansk standard.
>setlocale(LC_ALL, 'danish');
>
>$filename = 'avg.php';
>if (file_exists($filename)) {
> echo "siden er sidst opdateret" . date ("%d. %B %Y %H:%M:%S.",
>filemtime($filename));
>}
>?>
>---
>
>Denne kode giver et noget sjovt resultat.
>
Det skal den også gøre. Du bruger koden for strftime() men udfører den
med date(). Som tidliger nævnt skal du bruge strftime() hvis du vil have
dansk datoformat, og du skal bruge filemtime() hvis det er en 'fremmed'
fil du vil have datoen for.
Din line skal se sådan her ud:
echo strftime("Denne side er sidst opdateret %d. %B %Y %H:%M:%S",
filemtime($filename)).";
--
mvh, A:\Feldborg
Slægtsforskning og lokalhistorie i midt- vestjylland
http://hammerum-herred.dk/
| |
Arne Feldborg (23-01-2007)
| Kommentar Fra : Arne Feldborg |
Dato : 23-01-07 17:37 |
|
Arne Feldborg <feldborg@haunstrup.dk> skrev Tue, 23 Jan 2007 17:06:48
+0100
>Din line skal se sådan her ud:
>
>echo strftime("Denne side er sidst opdateret %d. %B %Y %H:%M:%S",
>filemtime($filename)).";
>
Lige et P.S.
Hvis du vil komme nemt om ved at definere datoformatet kan også bare
bruge denne her:
strftime("%c",filemtime($filename))
--
mvh, A:\Feldborg
Slægtsforskning og lokalhistorie i midt- vestjylland
http://hammerum-herred.dk/
| |
Anders Boholdt-Peter~ (25-01-2007)
| Kommentar Fra : Anders Boholdt-Peter~ |
Dato : 25-01-07 21:44 |
|
"Arne Feldborg" <feldborg@haunstrup.dk> skrev i en meddelelse
news:d9ccr29snajgc8793es1m30et71hh8e9vf@4ax.com...
> Din line skal se sådan her ud:
>
> echo strftime("Denne side er sidst opdateret %d. %B %Y %H:%M:%S",
> filemtime($filename)).";
Denne kode giver mig en fejl i linie 24 i mit dokument.
Jeg bruger nu følgende kode:
---
<?php
// Sørg for at datoudskriften følger dansk standard.
setlocale(LC_ALL, 'danish');
$filename = 'avg.php';
echo strftime("Denne side er sidst opdateret %d. %B %Y %H:%M:%S",
filemtime($filename)).";
}
?>
---
Nogle der ved hvor fejlen ligger?
--
/ Anders
http://www.boholdt-petersen.dk
| |
Peter Brodersen (25-01-2007)
| Kommentar Fra : Peter Brodersen |
Dato : 25-01-07 22:37 |
|
On Thu, 25 Jan 2007 21:44:05 +0100, "Anders Boholdt-Petersen"
<post-REMOVETHIS-@boholdt-petersen.dk> wrote:
>Nogle der ved hvor fejlen ligger?
Nu paster du betydeligt mindre end 24 linjer, så det er svært at vide,
hvilke linjer, der ligger omkring linje 24.
Men i det pastede har du en slut-krølle-parentes i overskud: }
Fjern den, hvis du ikke i øvrigt har nogen løkker eller deslige.
--
- Peter Brodersen
Kendt fra Internet
| |
Jesper Brunholm (25-01-2007)
| Kommentar Fra : Jesper Brunholm |
Dato : 25-01-07 22:39 |
|
Anders Boholdt-Petersen skrev:
>> echo strftime("Denne side er sidst opdateret %d. %B %Y %H:%M:%S",
>> filemtime($filename)).";
>
> Denne kode giver mig en fejl i linie 24 i mit dokument.
Ja, den afslutter med at påbegynde en tekststreng med '."', men ikke
gøre denne færdig.
Slet ." så skulle det virke
Mvh
Jesper Brunholm
| |
Anders Boholdt-Peter~ (30-01-2007)
| Kommentar Fra : Anders Boholdt-Peter~ |
Dato : 30-01-07 21:22 |
|
"Jesper Brunholm" <nospam@brunholm-scharff.dk> skrev i en meddelelse
news:45b92358$0$49208$14726298@news.sunsite.dk...
> Slet ." så skulle det virke
Jeps, tusind tak for hjælpen!!!
--
/ Anders
http://www.boholdt-petersen.dk
| |
|
|