|
| vise sidens sidste updtate med php - på da~ Fra : Gitte Nielsen |
Dato : 01-06-05 11:43 |
|
Jeg ved ikke, om dette er den rigtige gruppe at poste mit
spørgsmål i, så giv mig endelig et pænt vink til den rigtige i så
fald.
Jeg er ved at "rense" min egen hjemmeside for diverse
javascripts, og har fået øjnene op for alle de fantastiske ting
PHP kan gøre for at lette arbejdet for en selv.
Jeg er meget ny inden for PHP, og sidder og kæmper med at få den
til at skrive sidens sidste opdatering på dansk, altså:
Senest opdateret: Onsdag, den 1. juni 2005 (som et eksempel)
Jeg ved simpelthen ikke hvor jeg skal begynde, da jeg pudsigt nok
kan få dagens dato skrevet på dansk, men altså ikke den sidste
opdateringsdato.
Jeg håber der er nogle som kan hjælpe.
Med venlig hilsen
Gitte Nielsen
--
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
| |
Jacob Atzen (01-06-2005)
| Kommentar Fra : Jacob Atzen |
Dato : 01-06-05 12:46 |
|
On 2005-06-01, Gitte Nielsen <gitte_nielsenNOSPAM@newmail.dk> wrote:
> Jeg ved simpelthen ikke hvor jeg skal begynde, da jeg pudsigt nok
> kan få dagens dato skrevet på dansk, men altså ikke den sidste
> opdateringsdato.
Hvordan definerer du sidste opdateringsdato? Datoen, hvor den aktuelle
fil sidst blev rettet? Datoen, hvor du sidst opdaterede databasen?
Datoen, hvor en fil du includer sidst blev ændret?
Du bliver nødt til at definere problemet før du kan løse det
--
Med venlig hilsen
- Jacob Atzen
| |
Gitte Nielsen (01-06-2005)
| Kommentar Fra : Gitte Nielsen |
Dato : 01-06-05 15:06 |
|
Jacob Atzen wrote in dk.edb.internet.webdesign.serverside.php:
> Hvordan definerer du sidste opdateringsdato? Datoen, hvor den
>aktuelle
> fil sidst blev rettet? Datoen, hvor du sidst opdaterede databasen?
> Datoen, hvor en fil du includer sidst blev ændret?
Jeg var jo slet ikke klar over der var så meget at tage højde for
Min definition af datoen må være, hvornår den pågældende side på mit
site blev opdateret - ikke mere og ikke mindre . Og så skulle der
gerne komme til at stå ondsdag frem for Wednesday...
Jeg benytter mig endnu ikke af databaser i mit webarbejde, da jeg kun
har beskæftiget mig med hjemmesidekonstruktion i godt og vel et par
måneder. Så alt ting til sin tid.
/ Gitte
--
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
| |
Mikkel Z. Herold (01-06-2005)
| Kommentar Fra : Mikkel Z. Herold |
Dato : 01-06-05 13:49 |
|
On 01-06-2005 12:42 Gitte Nielsen wrote:
> Jeg er meget ny inden for PHP, og sidder og kæmper med at få den
> til at skrive sidens sidste opdatering på dansk, altså:
Som Jacob skriver, så afhænger det af, hvordan du definerer "siden".
Hvis du vil skrive ét sted, hvornår der sidst er sket en ændring på hele
sitet (altså på en hvilken som helst underside) kan du bruge:
<?php
setlocale (LC_ALL, 'da_DK');
$site_opdateret = filemtime("/server/sti/til/din/rodmappe/.");
echo "Sitet er sidst opdateret $site_opdateret";
?>
Husk, at der skal være en punktum til sidst i serverstien! Hvis du vil
have datoen for en enkelt fil, skal du skifte punktummet ud med
filnavnet eller simpelthen skifte hele stien ud med $PHP_SELF.
Og igen, hvis du bruger en database til at generere indhold på nogle
sider, så bliver de sider ikke "fanget" af ovenstående...
Mikkel
--
"At first just a rustle of canvas
And the gentlest breath on my face
But a galloping line of white horses
Said that soon we were in for a race"
Sting - The Wild Wild Sea
http://www.mzh.dk
| |
Dan Storm (01-06-2005)
| Kommentar Fra : Dan Storm |
Dato : 01-06-05 14:07 |
|
Godt svar på fil opdatering! ;)
Og hvis hun så bruger mysql er dette en mulighed:
$days = array('søndag', 'mandag', 'tirsdag', 'onsdag', 'torsdag',
'fredag', 'lørdag');
$months = array(1=> 'Januar', 'Februar', 'Marts', 'April', 'Maj',
'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'December');
$sql_udtraek = "1-6-2005";
$tid = explode("-", $sql_udtraek);
$dag = date("w", mktime(0, 0, 0, $tid[1], $tid[0], $tid[2]));
echo 'Sidst redigeret '.$days[$dag].' d. '.$tid[0].'.
'.$months[$tid[1]].' '.$tid[2];
Selvom det kan gøres meget smartere er dette ret nemt!
Personligt benytter jeg mig af unix_timestamp() som mysql benytter sig af.
--
Dan Storm
http://err0r.dk
storm@err0r.dk
PGP Public key på http://err0r.dk/pubring.pkr
>>> husk på; en ekspert er en person der har begået alle fejl mulige
inden for et bestemt område
| |
Dan Storm (01-06-2005)
| Kommentar Fra : Dan Storm |
Dato : 01-06-05 15:32 |
|
Tilføjer lige til mig selv! ;)
Du kan benytte både mit og Mikkels svar således:
setlocale (LC_ALL, 'da_DK');
$site_opdateret = filemtime("/dine/htdocs/.");
$opd = date('w-d-n-Y', $site_opdateret);
$days = array('søndag', 'mandag', 'tirsdag', 'onsdag', 'torsdag',
'fredag', 'lørdag');
$months = array(1=> 'Januar', 'Februar', 'Marts', 'April', 'Maj',
'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'December');
$tid = explode("-", $opd);
echo 'Sidst redigeret '.$days[$tid[0]].' d. '.$tid[1].'.
'.$months[$tid[2]].' '.$tid[3];
--
Dan Storm
http://err0r.dk
storm@err0r.dk
PGP Public key på http://err0r.dk/pubring.pkr
>>> husk på; en ekspert er en person der har begået alle fejl mulige
inden for et bestemt område
| |
Jacob Atzen (01-06-2005)
| Kommentar Fra : Jacob Atzen |
Dato : 01-06-05 15:39 |
|
On 2005-06-01, Dan Storm <shadyz@_REMOVETHIS_err0r.dk> wrote:
> setlocale (LC_ALL, 'da_DK');
> $site_opdateret = filemtime("/dine/htdocs/.");
> $opd = date('w-d-n-Y', $site_opdateret);
>
> $days = array('søndag', 'mandag', 'tirsdag', 'onsdag', 'torsdag',
> 'fredag', 'lørdag');
> $months = array(1=> 'Januar', 'Februar', 'Marts', 'April', 'Maj',
> 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'December');
>
> $tid = explode("-", $opd);
>
> echo 'Sidst redigeret '.$days[$tid[0]].' d. '.$tid[1].'.
> '.$months[$tid[2]].' '.$tid[3];
Siden du nu sætter et locale, hvorfor benytter du dig så ikke af det?
--
Med venlig hilsen
- Jacob Atzen
| |
Dan Storm (01-06-2005)
| Kommentar Fra : Dan Storm |
Dato : 01-06-05 16:09 |
|
Jeg kunne ikke selv få det til at virke på min egen server, men hvis det
nu virker på hendes, er det selvfølgelig en bedre måde at gøre det på!
--
Dan Storm
http://err0r.dk
storm@err0r.dk
PGP Public key på http://err0r.dk/pubring.pkr
>>> husk på; en ekspert er en person der har begået alle fejl mulige
inden for et bestemt område
| |
Ukendt (01-06-2005)
| Kommentar Fra : Ukendt |
Dato : 01-06-05 14:15 |
|
> <?php
> setlocale (LC_ALL, 'da_DK');
> $site_opdateret = filemtime("/server/sti/til/din/rodmappe/.");
> echo "Sitet er sidst opdateret $site_opdateret";
> ?>
Øhh så skrive den :
Sitet er sidst opdateret 1117631401
Øhh er det en dato ?
| |
Dan Storm (01-06-2005)
| Kommentar Fra : Dan Storm |
Dato : 01-06-05 14:33 |
|
<citat hvem=buffy>
Øhh så skrive den :
Sitet er sidst opdateret 1117631401
Øhh er det en dato ?
</citat>
prøv at skrive:
echo date('d/m-Y', '1117631401')
--
Dan Storm
http://err0r.dk
storm@err0r.dk
PGP Public key på http://err0r.dk/pubring.pkr
>>> husk på; en ekspert er en person der har begået alle fejl mulige
inden for et bestemt område
| |
Ukendt (01-06-2005)
| Kommentar Fra : Ukendt |
Dato : 01-06-05 15:05 |
|
> prøv at skrive:
> echo date('d/m-Y', '1117631401')
Nåhh sådan : )
<?php
setlocale (LC_ALL, 'da_DK');
$site_opdateret = filemtime("/server/sti/til/din/rodmappe/.");
echo "Sitet er sidst opdateret ";
echo date('d/m-Y', $site_opdateret); ?>
mvh
| |
Bertel Lund Hansen (01-06-2005)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 01-06-05 15:42 |
|
"Buffy" <Tjekmig(snabel-a)pc.dk> skrev:
><?php
>setlocale (LC_ALL, 'da_DK');
>$site_opdateret = filemtime("/server/sti/til/din/rodmappe/.");
>echo "Sitet er sidst opdateret ";
>echo date('d/m-Y', $site_opdateret); ?>
Tæt på.
date() respecterer ikke setlocale(). Det gør derimod strftime().
Det følgende er testet og virker idet det forudsættes at den
aktuelle fils navn ligger i $filename:
<?
setlocale (LC_ALL, 'da_DK');
$site_opdateret = filemtime($filename);
echo "Siden er sidst opdateret ";
echo strftime('%A den %d. %B %Y', $site_opdateret);
?>
Bemærk punktummet efter datoen, og undlad at sætte komma efter
ugedagen. Det ville være en (sproglig) fejl.
Her kan man se mulighederne ved strftime():
http://dk2.php.net/manual/en/function.strftime.php
Og øverst på siden kan man i søgeboksen angive en anden funktion
som man vil læse om, f.eks. date() eller filemtime().
--
Bertel
http://bertel.lundhansen.dk/ FIDUSO: http://fiduso.dk/
| |
Ukendt (02-06-2005)
| Kommentar Fra : Ukendt |
Dato : 02-06-05 17:41 |
|
> <?php
> setlocale (LC_ALL, 'da_DK');
> $site_opdateret = filemtime("/server/sti/til/din/rodmappe/.");
> echo "Sitet er sidst opdateret ";
> echo date('d/m-Y', $site_opdateret); ?>
kan man få den til at tjekke undermapper også ?
| |
Mikkel Z. Herold (02-06-2005)
| Kommentar Fra : Mikkel Z. Herold |
Dato : 02-06-05 21:05 |
|
On 02-06-2005 18:40 Buffy wrote:
> kan man få den til at tjekke undermapper også ?
Hvad mener du? Ved at sætte det sidste punktum i serverstien til din
rodmappe, tjekker den automatisk alle undermapper.
Mikkel
--
"At first just a rustle of canvas
And the gentlest breath on my face
But a galloping line of white horses
Said that soon we were in for a race"
Sting - The Wild Wild Sea
http://www.mzh.dk
| |
Ukendt (02-06-2005)
| Kommentar Fra : Ukendt |
Dato : 02-06-05 21:56 |
|
> Hvad mener du? Ved at sætte det sidste punktum i serverstien til din
> rodmappe, tjekker den automatisk alle undermapper.
>
> Mikkel
NEJ på : http://tjekmig.dk/galleri/index.php
har jeg skrevet :
<?php
setlocale (LC_ALL, 'da_DK');
$site_opdateret =
filemtime("/customers/tjekmig.dk/tjekmig.dk/httpd.www/galleri/.");
echo "er sidst opdateret ";
echo strftime('%d-%m-%Y / %H:%M:%S', $site_opdateret); ?>
Og hvis man uploader et foto til galleriet kommer de ind i en undermappe
tjekmig.dk/galleri/diverse
det se http://tjekmig.dk/galleri/index.php ikke ?
mvh
| |
Mikkel Z. Herold (02-06-2005)
| Kommentar Fra : Mikkel Z. Herold |
Dato : 02-06-05 22:19 |
|
On 02-06-2005 22:56 Buffy wrote:
> Og hvis man uploader et foto til galleriet kommer de ind i en undermappe
> tjekmig.dk/galleri/diverse
> det se http://tjekmig.dk/galleri/index.php ikke ?
Hmmm... Det virker her hos mig. Hvis der "fysisk" placeres en billedfil
i en undermappe når man uploader, så burde det blive registreret.
Hvis billedet derimod lagres i en database, så er det det, der er problemet.
Som det er beskrevet længere oppe i tråden, så fanges den slags
ændringer ikke af ovenstående kode, for selve siden der viser billedet
bliver ikke ændret af, at der bliver uploadet et nyt billede - det er
indholdet i databasen, der bliver ændret.
Så skal du finde en måde at fastslå, hvornår det seneste billede er
blevet uploadet (måske har du en variabel for det i databasen?), og så
sammenligne det tidspunkt med tidspunktet du får fra den kode jeg gav
dig. Herefter er det bare at udskrive det seneste tidspunkt af de to -
problemet kan være at du ikke har en variabel med upload-tidspunktet i
din database. Jeg ved ikke, om databasen selv holder styr på den slags,
men det ved de helt sikkert i news:dk.edb.database
Mikkel
--
"At first just a rustle of canvas
And the gentlest breath on my face
But a galloping line of white horses
Said that soon we were in for a race"
Sting - The Wild Wild Sea
http://www.mzh.dk
| |
Ukendt (02-06-2005)
| Kommentar Fra : Ukendt |
Dato : 02-06-05 22:30 |
|
Bruger ikke database
| |
Mikkel Z. Herold (02-06-2005)
| Kommentar Fra : Mikkel Z. Herold |
Dato : 02-06-05 23:18 |
|
On 02-06-2005 23:29 Buffy wrote:
> Bruger ikke database
Så ved jeg ikke, hvad der går galt.
Prøv i stedet med denne kode, taget fra
http://dk.php.net/manual/en/function.filemtime.php
function mostRecentModifiedFileTime($dirName,$doRecursive) {
$d = dir($dirName);
$lastModified = 0;
while($entry = $d->read()) {
if ($entry != "." && $entry != "..") {
if (!is_dir($dirName."/".$entry)) {
$currentModified = filemtime($dirName."/".$entry);
} else if ($doRecursive && is_dir($dirName."/".$entry)) {
$currentModified = mostRecentModifiedFileTime($dirName."/".$entry,true);
}
if ($currentModified > $lastModified){
$lastModified = $currentModified;
}
}
}
$d->close();
return $lastModified;
}
Så skal du skrive:
$site_opdateret =
mostRecentModifiedFileTime("/server/sti/til/din/rodmappe/",true);
echo "Sidst opdateret: ".strftime('%d-%m-%Y / %H:%M:%S', $site_opdateret);
Mikkel
--
"At first just a rustle of canvas
And the gentlest breath on my face
But a galloping line of white horses
Said that soon we were in for a race"
Sting - The Wild Wild Sea
http://www.mzh.dk
| |
Ukendt (03-06-2005)
| Kommentar Fra : Ukendt |
Dato : 03-06-05 08:05 |
|
> Prøv i stedet med denne kode, taget fra
> http://dk.php.net/manual/en/function.filemtime.php
TAK her er den :
<?php function mostRecentModifiedFileTime($dirName,$doRecursive) {
$d = dir($dirName);
$lastModified = 0;
while($entry = $d->read()) {
if ($entry != "." && $entry != "..") {
if (!is_dir($dirName."/".$entry)) {
$currentModified = filemtime($dirName."/".$entry);
} else if ($doRecursive && is_dir($dirName."/".$entry)) {
$currentModified = mostRecentModifiedFileTime($dirName."/".$entry,true);
}
if ($currentModified > $lastModified){
$lastModified = $currentModified;
}
}
}
$d->close();
return $lastModified;
}
$site_opdateret =
mostRecentModifiedFileTime("/customers/tjekmig.dk/tjekmig.dk/httpd.www/galleri/",true);
echo "er sidst opdateret: ".strftime('%d-%m-%Y / %H:%M:%S',
$site_opdateret); ?>
| |
Bertel Lund Hansen (02-06-2005)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 02-06-05 23:31 |
|
"Buffy" <Tjekmig(snabel-a)pc.dk> skrev:
>> <?php
>> setlocale (LC_ALL, 'da_DK');
>> $site_opdateret = filemtime("/server/sti/til/din/rodmappe/.");
>> echo "Sitet er sidst opdateret ";
>> echo date('d/m-Y', $site_opdateret); ?>
>kan man få den til at tjekke undermapper også ?
Hvad mener du med tjekke? filemtime() returnerer data for ét
objekt, og det er det man specificerer i parentesen.
Hvis du vil have udskrevet datoer for mange filer, må du
gennemløbe dem en ad gangen, og så er det gennemløbsrutinen der
skal finde og tjekke undermapper.
PS. setlocale() har ingen effekt på date().
--
Bertel
http://bertel.lundhansen.dk/ FIDUSO: http://fiduso.dk/
| |
Mikkel Z. Herold (02-06-2005)
| Kommentar Fra : Mikkel Z. Herold |
Dato : 02-06-05 10:17 |
|
On 01-06-2005 15:15 Buffy wrote:
> Øhh så skrive den :
> Sitet er sidst opdateret 1117631401
Sådan går det, når det går for hurtigt!
Variablen $site_opdateret skal selvfølgelig lige en tur gennem
strftime(), som Bertel skriver, før den bliver læselig. Beklager!
Mikkel
--
"At first just a rustle of canvas
And the gentlest breath on my face
But a galloping line of white horses
Said that soon we were in for a race"
Sting - The Wild Wild Sea
http://www.mzh.dk
| |
Arne Feldborg (01-06-2005)
| Kommentar Fra : Arne Feldborg |
Dato : 01-06-05 15:30 |
|
Gitte Nielsen <gitte_nielsenNOSPAM@newmail.dk> skrev 01 Jun 2005
10:42:30 GMT
> Senest opdateret: Onsdag, den 1. juni 2005 (som et eksempel)
>
Hvis du bare ønske at skrive hvornår den pågældende *side* sidst er
opdateret kan du nøjes med noget i den her stil:
<?php
print
'Last modified: '.strftime( "%d-%m-%Y / %H:%M:%S", getlastmod( ) );
?>
--
mvh, A:\Feldborg
Folketællinger Hammerum og Bølling herreder, kirkebøger Hammerum herred
http://www.haunstrup.dk/feldborg/genealogi/download/
| |
Bertel Lund Hansen (01-06-2005)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 01-06-05 15:47 |
|
Arne Feldborg skrev:
>'Last modified: '.strftime( "%d-%m-%Y / %H:%M:%S", getlastmod( ) );
Det ser temmelig engelsk ud, og så følger det i øvrigt heller
ikke det ønskede format.
--
Bertel
http://bertel.lundhansen.dk/ FIDUSO: http://fiduso.dk/
| |
Arne Feldborg (01-06-2005)
| Kommentar Fra : Arne Feldborg |
Dato : 01-06-05 21:19 |
|
Bertel Lund Hansen <nospamfilius@lundhansen.dk> skrev Wed, 01 Jun 2005
16:46:48 +0200
>>'Last modified: '.strftime( "%d-%m-%Y / %H:%M:%S", getlastmod( ) );
>
>Det ser temmelig engelsk ud, og så følger det i øvrigt heller
>ikke det ønskede format.
>
Det var s'mænd bare for at vise hvor simpelt selve grundrutinen kan
være, i modsætning til de andre mere sofistikerede forslag.
At ændre "Last modified:" til dansk turde være et mindre problem.
Og der var ikke i spørgsmålet forlangt et bestemt format - men bare
ønsket et forslag til hvordan spørgeren kunne komme vidre.
Det må så være op til spørgeren selv at undersøge/afprøve de muligheder
der ligger i strftime().
--
mvh, A:\Feldborg
Folketællinger Hammerum og Bølling herreder, kirkebøger Hammerum herred
http://www.haunstrup.dk/feldborg/genealogi/download/
| |
Bertel Lund Hansen (02-06-2005)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 02-06-05 10:00 |
|
Arne Feldborg skrev:
>Det var s'mænd bare for at vise hvor simpelt selve grundrutinen kan
>være, i modsætning til de andre mere sofistikerede forslag.
Jeg læste ud af spørgsmålet at hun sagtens kunne få en engelsk
dato frem, og da der stod "dansk" i overskriften og der stod en
dansk udskrift som eksempel, syntes jeg det ramte noget ved siden
af med et rent engelsk forslag.
--
Bertel
http://bertel.lundhansen.dk/ FIDUSO: http://fiduso.dk/
| |
Gitte Nielsen (02-06-2005)
| Kommentar Fra : Gitte Nielsen |
Dato : 02-06-05 13:25 |
|
Jeg takker for den meget venlige hjælp fra alle...
Jeg har nu fået det til at køre som jeg ønskede, og er også begyndt
at se strukturen i PHP. Det er faktisk et meget logisk sprog, når
man først får "knækket nøden".
Jeg lukker hermed spørgsmålet, og kan nu arbejde videre (og lære
mere) med PHP.
Tak for hjælpen
De venligste hilsner
Gitte
--
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
| |
|
|