/ 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
Webcam-ting
Fra : Lasse Hedegaard


Dato : 28-07-02 19:15

Hejsa!

Jeg skal have sat et webcam op til brug for en enkelt aften. Jeg har
fundet et program (Gotcha!) som kan klare det med at styre webcam'et
og uploade billeder. Det uploader et billede så snart det er færdigt
med et - fint nok.

Problemet er nu, at hvis jeg blot overskriver den tidl. billed-fil på
serveren, så vil der blive vist et "halvt" billede, hvis der er en der
henter filen i det øjeblik der uploades et.

Jeg har derfor sat Gotcha! op til at skiftevis gemme med to
forskellige navne.

Nu vil jeg have PHP til at kigge på hvilken af disse to filer der er
den nyest uploadede (her skal kigges på sekunder - minutter er ikke
nok) - men hvordan gør jeg det?

Hvis det ikke kan lade sig gøre, så er et alternativ at vælge efter
hvilken fil der er størt, da den mindste vil være den
"ikke-komplette".

Nogle der kan pege i den rigtige retning?

Venligst,
Lasse Hedegaard

--
http://www.simlock.dk/ - låsesmeden til din simlock
** - Nu også unlocking af Nokia 3410 og 5210! **

Få din Nokia 3310 opdateret til 3315! (Version 5.57)

 
 
Regin Larsen (28-07-2002)
Kommentar
Fra : Regin Larsen


Dato : 28-07-02 19:26

Lasse Hedegaard wrote:
> Nu vil jeg have PHP til at kigge på hvilken af disse to filer der er
> den nyest uploadede (her skal kigges på sekunder - minutter er ikke
> nok) - men hvordan gør jeg det?

http://dk.php.net/filectime


--
Regin


Lasse Hedegaard (28-07-2002)
Kommentar
Fra : Lasse Hedegaard


Dato : 28-07-02 19:32

Lasse Hedegaard skrev:

>Nu vil jeg have PHP til at kigge på hvilken af disse to filer der er
>den nyest uploadede (her skal kigges på sekunder - minutter er ikke
>nok) - men hvordan gør jeg det?

Kommer lige i tanke om noget.

Hvornår "stemples" filen med data om hvornår den sidst er redigeret?
Når upload starter, eller når upload er færdig? Hvis det er når upload
starter, så er det jo et problem - da man jo så netop hele tiden vil
støde på den ikke-færdige fil...

Venligst,
Lasse Hedegaard

--
http://www.simlock.dk/ - låsesmeden til din simlock
** - Nu også unlocking af Nokia 3410 og 5210! **

Få din Nokia 3310 opdateret til 3315! (Version 5.57)

Niels Andersen (28-07-2002)
Kommentar
Fra : Niels Andersen


Dato : 28-07-02 20:08

Lasse Hedegaard wrote in <f2e8ku898a64opnirnosvi1k90di2dqa45@news.tele.dk>:
>>Nu vil jeg have PHP til at kigge på hvilken af disse to filer der er
>>den nyest uploadede (her skal kigges på sekunder - minutter er ikke
>>nok) - men hvordan gør jeg det?
> Hvornår "stemples" filen med data om hvornår den sidst er redigeret?
> Når upload starter, eller når upload er færdig? Hvis det er når upload
> starter, så er det jo et problem - da man jo så netop hele tiden vil
> støde på den ikke-færdige fil...

Tag den ældste.

Eller endnu bedre:
Upload til ét filnavn, og omdøb.

fx:

Et billede tages, og uploades som "webcam.tmp".
Derefter omdøbes det til "webcam.jpg".

Er serveren en unix, så vil der altid være et komplet billede tilgængeligt.
Er det Windows, så skulle der vist være en meget kort periode under
omdøbning, for ingen fil er tilgængelig.

Jeg aner ikke om programmet understøtter dette, men det burde det. Det er
(mig bekendt) den bedste løsning, og så er det ret nemt.

Alternativt kunne man måske selv lave upload-rutinen.

Hvis fx. programmet har en http-server indbygget, hvor du kan hente
billede, som bliver taget når der kommer en request. Så er det ret simpelt.

Fx. i bash:

while true
do
wget http://localhost/webcam.jpg
echo "cd webcam
put webcam.jpg webcam.tmp
rename webcam.tmp webcam.jpg
" | ftp eksempel.dk
done

Jeg kan gætte mig til at det er en Windows-maskine du sidder ved, men det
skulle være nemt at lave noget lignende med ander værktøjer. Ellers så er
cygwin jo altid ved hånden.

--
Mvh.

Niels Andersen
(la nels. anersyn.)

Lasse Hedegaard (28-07-2002)
Kommentar
Fra : Lasse Hedegaard


Dato : 28-07-02 21:05

Niels Andersen skrev:

>Tag den ældste.

Selvfølgelig!

>Eller endnu bedre:
>Upload til ét filnavn, og omdøb.
>Jeg aner ikke om programmet understøtter dette, men det burde det. Det er
>(mig bekendt) den bedste løsning, og så er det ret nemt.

Det tror jeg desværre ikke det gør.

Tak for'd - jeg tager selvfølgelig bare den ældste. 10 sekunders
(eller hvor meget det nu bliver) forsinkelse kan nok gå an :)

Venligst,
Lasse Hedegaard

--
http://www.simlock.dk/ - låsesmeden til din simlock
** - Nu også unlocking af Nokia 3410 og 5210! **

Få din Nokia 3310 opdateret til 3315! (Version 5.57)

Ukendt (28-07-2002)
Kommentar
Fra : Ukendt


Dato : 28-07-02 21:06

[SNIP]
>while true
>do
> wget http://localhost/webcam.jpg
> echo "cd webcam
>put webcam.jpg webcam.tmp
>rename webcam.tmp webcam.jpg
>" | ftp eksempel.dk
>done

Niels, nu sad jeg lige og kiggede lidt ... Jeg kører på en Windows
server MED cygwin, men hvordan laver man såen en bash en som
ovenstående?

Hvordan skal den køres i cygwin?
Kan man få den til at køre fx 2 gange i minuttet eller lign ?

Niels Andersen (28-07-2002)
Kommentar
Fra : Niels Andersen


Dato : 28-07-02 22:29

-Martin- <martin_aarhof(AT)hotmail.com> wrote in
<7jj8kucssvf6grf28jbi28512faed510qd@4ax.com>:
>>while true
>>do
>> wget http://localhost/webcam.jpg
>> echo "cd webcam
>>put webcam.jpg webcam.tmp
>>rename webcam.tmp webcam.jpg
>>" | ftp eksempel.dk
>>done

> Niels, nu sad jeg lige og kiggede lidt ... Jeg kører på en Windows
> server MED cygwin, men hvordan laver man såen en bash en som
> ovenstående?

Faktisk ligesom i Unix...
Man kan dog ikke markere filer som executable, den gør det vist selv.
Noget med at tekst-filer der starter med en she-bang linje eller sådan
noget...

Så du gemmer bare en tekst-filer, som starter med "#!/bin/bash" som første
linje, og så scripter du bare løs.
Du starter den så som ethvert andet program: "./filnavn" el. lign.

Hvis du vil starte den med musen kan su fx. kalde den ".bash" til sidst, og
associere ".bash"-filer til bash. Jeg tror det er nok.

> Kan man få den til at køre fx 2 gange i minuttet eller lign ?

Som jeg skrev det starter du den bare én gang. Så kører den i en uendelig
løkke. Hvis du ikke vil have den til at uploade alt hvad den kan, kan man
sætte lidt forsinkelse ind. Fx. lige før done: "sleep 30", så venter den i
30 sekunder inden den uploader igen.

--
Mvh.

Niels Andersen
(la nels. anersyn.)

Ukendt (28-07-2002)
Kommentar
Fra : Ukendt


Dato : 28-07-02 22:54

On Sun, 28 Jul 2002 23:29:02 +0200, Niels Andersen
<niels-usenet@myplace.dk> wrote:

>-Martin- <martin_aarhof(AT)hotmail.com> wrote in
><7jj8kucssvf6grf28jbi28512faed510qd@4ax.com>:
>>>while true
>>>do
>>> wget http://localhost/webcam.jpg
>>> echo "cd webcam
>>>put webcam.jpg webcam.tmp
>>>rename webcam.tmp webcam.jpg
>>>" | ftp eksempel.dk
>>>done
>
>> Niels, nu sad jeg lige og kiggede lidt ... Jeg kører på en Windows
>> server MED cygwin, men hvordan laver man såen en bash en som
>> ovenstående?
>
>Faktisk ligesom i Unix...
>Man kan dog ikke markere filer som executable, den gør det vist selv.
>Noget med at tekst-filer der starter med en she-bang linje eller sådan
>noget...
>
>Så du gemmer bare en tekst-filer, som starter med "#!/bin/bash" som første
>linje, og så scripter du bare løs.
>Du starter den så som ethvert andet program: "./filnavn" el. lign.

Ahh okaj

BtW kan man få cygwin til at køre en PHP fil udenom Internet Explorer,
Opera, NS, whatever ?

Jeg har nemlig et script som ska køres ca hver 1 time eller såen
noget, men det er ikke muligt på REN windows da den så skal åbne IE
for at kunne.

Så kan man lave et cronjob i cygwin ?

Niels Andersen (28-07-2002)
Kommentar
Fra : Niels Andersen


Dato : 28-07-02 23:57

-Martin- <martin_aarhof(AT)hotmail.com> wrote in
<usp8kukom5a91j54vf27amhheq6hvm1vjb@4ax.com>:
> BtW kan man få cygwin til at køre en PHP fil udenom Internet Explorer,
> Opera, NS, whatever ?

Yeps.
Du kan starte php-filen med:
#!/cygdrive/c/php4/php.exe -qC
Stien er gættet, og parametrene er bare mine favoritter, hvis jeg husker
dem rigtigt.
Så blever det til et shell-script.

Du kan også glemme Cygwin, og så bare køre php.exe med "-qC" (hvis jeg
husker parametrene rigtigt), og så til sidst filnavnet på din php-fil. Så
bliver det kørt uden om browser og webserver.

Men selve det, at undvære webserver, kræver CGI-versionen. Kort sagt (i
Windows): php.exe

> Jeg har nemlig et script som ska køres ca hver 1 time eller såen
> noget, men det er ikke muligt på REN windows da den så skal åbne IE
> for at kunne.
>
> Så kan man lave et cronjob i cygwin ?

Nu blander du vidste tingene sammen. :)
Jeg har fortalt dig lidt om at køre PHP uden browser og webserver. Det
næste er så at køre det automatisk, fx. hver time. I unix er løsningen
"cron" el. lign. Windows har en lignende feature. Den fungerer langt fra så
godt, jeg synes selv den kan være ret besværlig at gennemskue, men
tilsyneladende er det altafgørende de pæne knapper med 3D-rammer.
Anyway, det hedder vist "Opgavestyring" eller sådan noget. Det bliver vist
lavet om for hveranden Windows-version, og hedder selvfølgelig noget andet
på andre sprog. Men den plejer vist at sidde om et ikon nede ved uret...

Anyway, den kan du godt få til at køre php.exe (med de relevante parametre)
hver time.

Jeg mener helt bestem at man kan få cron til at køre under cygwin, men jeg
har ikke selv erfaringer med det. Det er vist ikke helt så simpelt som de
fleste andre cygwin-ting, som bare fungerer som man er vant til. :)

--
Mvh.

Niels Andersen
(la nels. anersyn.)

Søg
Reklame
Statistik
Spørgsmål : 177520
Tips : 31968
Nyheder : 719565
Indlæg : 6408659
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste