|
| Simpel tæller - går galt Fra : Lasse Hedegaard |
Dato : 21-08-02 20:31 |
|
Hejsa!
Jeg bruger denne simple tæller flere steder på fergusons.dk:
$fp=fopen("antal.inc","r");
$count=fgets($fp,1024);
fclose($fp);
$fw=fopen("antal.inc","w");
$count++;
$countnew=fputs($fw,$count);
fclose($fw);
Men men... af og til, så går den helt i stå. Pludselig indeholder
filen antal.inc ingenting, og tælleren går derfor i stå.
Hvordan kan det være, at filen pludselig bliver tømt?
Venligst,
Lasse Hedegaard
--
http://www.simlock.dk/ - låsesmeden til din simlock
** - Nu også unlocking af Nokia 3410, 5210 og 6310 **
Få din Nokia 3310 opdateret til 3315! (Version 5.57)
| |
Larz (21-08-2002)
| Kommentar Fra : Larz |
Dato : 21-08-02 21:10 |
|
Lasse Hedegaard wrote:
> Hejsa!
>
> Jeg bruger denne simple tæller flere steder på fergusons.dk:
>
> $fp=fopen("antal.inc","r");
> $count=fgets($fp,1024);
> fclose($fp);
> $fw=fopen("antal.inc","w");
> $count++;
> $countnew=fputs($fw,$count);
> fclose($fw);
>
> Men men... af og til, så går den helt i stå. Pludselig indeholder
> filen antal.inc ingenting, og tælleren går derfor i stå.
>
> Hvordan kan det være, at filen pludselig bliver tømt?
Du låser ikke filen... Her er en lidt forbedret udgave:
$cnt = implode('',file('antal.inc'));
$cnt++;
$fp = fopen('antal.inc','w');
flock($fp,LOCK_EX);
fwrite($fp,$cnt);
fclose($fp);
Se evt http://dk.php.net/flock
--
-
Lars
http://coder.dk/sohofaq.php - Uofficiel WOL SOHO 77 FAQ
http://wshlman.moons.dk/ - Say goodbye to GameSpy
- A Free Half Life Manager!
To mail me remove your-pants.
| |
Jonas Koch Bentzen (21-08-2002)
| Kommentar Fra : Jonas Koch Bentzen |
Dato : 21-08-02 21:15 |
|
Larz skrev:
>
> $cnt = implode('',file('antal.inc'));
Eller bare
list($antal) = file("antal.inc");
| |
Lasse Hedegaard (21-08-2002)
| Kommentar Fra : Lasse Hedegaard |
Dato : 21-08-02 22:01 |
|
Jonas Koch Bentzen skrev:
>> $cnt = implode('',file('antal.inc'));
>
>Eller bare
>
>list($antal) = file("antal.inc");
Hmm, når jeg bruger Lars forslag, så tæller den, bruger jeg dit
(Jonas), så står den på 1 hele tiden.
Venligst,
Lasse Hedegaard
--
http://www.simlock.dk/ - låsesmeden til din simlock
** - Nu også unlocking af Nokia 3410, 5210 og 6310 **
Få din Nokia 3310 opdateret til 3315! (Version 5.57)
| |
Jonas Koch Bentzen (21-08-2002)
| Kommentar Fra : Jonas Koch Bentzen |
Dato : 21-08-02 22:14 |
|
Lasse Hedegaard skrev:
> Jonas Koch Bentzen skrev:
>
>
>>>$cnt = implode('',file('antal.inc'));
>>
>>Eller bare
>>
>>list($antal) = file("antal.inc");
>
>
> Hmm, når jeg bruger Lars forslag, så tæller den, bruger jeg dit
> (Jonas), så står den på 1 hele tiden.
Er du sikker på, du sætter linjen ind det rigtige sted?
| |
Lasse Hedegaard (21-08-2002)
| Kommentar Fra : Lasse Hedegaard |
Dato : 21-08-02 22:16 |
|
Jonas Koch Bentzen skrev:
>Er du sikker på, du sætter linjen ind det rigtige sted?
Absolut ikke :)
Jeg gik ud fra, at når du skrev "eller bare", så skulle den linie du
skrev udskiftes med den du citerede fra Lars indlæg - altså første
linie?
Men jeg kan da godt se (nu), at $cnt i dette tilfælde slet ikke vil
blive sat til nogen værdi - så det er nu nok forkert :)
Venligst,
Lasse Hedegaard
--
http://www.simlock.dk/ - låsesmeden til din simlock
** - Nu også unlocking af Nokia 3410, 5210 og 6310 **
Få din Nokia 3310 opdateret til 3315! (Version 5.57)
| |
Jonas Koch Bentzen (21-08-2002)
| Kommentar Fra : Jonas Koch Bentzen |
Dato : 21-08-02 22:55 |
|
Lasse Hedegaard skrev:
> Jonas Koch Bentzen skrev:
>
>
>>Er du sikker på, du sætter linjen ind det rigtige sted?
>
>
> Absolut ikke :)
>
> Jeg gik ud fra, at når du skrev "eller bare", så skulle den linie du
> skrev udskiftes med den du citerede fra Lars indlæg - altså første
> linie?
>
> Men jeg kan da godt se (nu), at $cnt i dette tilfælde slet ikke vil
> blive sat til nogen værdi - så det er nu nok forkert :)
Okay, så udskift $antal med $cnt.
| |
Lasse Hedegaard (21-08-2002)
| Kommentar Fra : Lasse Hedegaard |
Dato : 21-08-02 23:01 |
|
Jonas Koch Bentzen skrev:
>Okay, så udskift $antal med $cnt.
Doh!
Behøver jeg sige mere end: Godnat! :)
Venligst,
Lasse Hedegaard
--
http://www.simlock.dk/ - låsesmeden til din simlock
** - Nu også unlocking af Nokia 3410, 5210 og 6310 **
Få din Nokia 3310 opdateret til 3315! (Version 5.57)
| |
Lasse Hedegaard (21-08-2002)
| Kommentar Fra : Lasse Hedegaard |
Dato : 21-08-02 21:46 |
|
Larz skrev:
>Du låser ikke filen.
Jeg spørger lige lidt mere.
Hvorfor skal den låses, og hvad sker der præcis?
Er det når der er flere der åbner eller gemmer filen samtidigt, at jeg
risikerer at den 'nulstilles'? Hvis ikke, hvornår sker det så?
Når man låser en fil, er der så kun en enkelt der kan bruge den ad
gangn, eller hvad sker der?
Hvis der ikke er 'ulemper' ved at låse den, hvorfor sker det så ikke
automatisk?
Jeg kiggede på linket, men fandt ikke umiddelbart svar på disse
spørgsmål.
Venligst,
Lasse Hedegaard
--
http://www.simlock.dk/ - låsesmeden til din simlock
** - Nu også unlocking af Nokia 3410, 5210 og 6310 **
Få din Nokia 3310 opdateret til 3315! (Version 5.57)
| |
Larz (21-08-2002)
| Kommentar Fra : Larz |
Dato : 21-08-02 22:01 |
|
Lasse Hedegaard wrote:
> Hvorfor skal den låses, og hvad sker der præcis?
Forestil dig at i samme øjeblik dit script trunkerer (tømmer) filen for
at skrive det nye indhold, ja, så åbnes den af en anden instans, og
bliver læst... Den nye instans læser noget tomt ind... Den første
instans skriver det gamle indhold, hvorefter den nye instans skriver en
tom fil...
> Er det når der er flere der åbner eller gemmer filen samtidigt, at jeg
> risikerer at den 'nulstilles'? Hvis ikke, hvornår sker det så?
Yeps...
> Hvis der ikke er 'ulemper' ved at låse den, hvorfor sker det så ikke
> automatisk?
Hvis du blot skal læse behøver du ikke låse filen - andre må godt læse
filen samtidigt.
Ulemperne er vel at et script kan låse en fil på ubestemt tid...
--
-
Lars
http://coder.dk/sohofaq.php - Uofficiel WOL SOHO 77 FAQ
http://wshlman.moons.dk/ - Say goodbye to GameSpy
- A Free Half Life Manager!
To mail me remove your-pants.
| |
Lasse Hedegaard (21-08-2002)
| Kommentar Fra : Lasse Hedegaard |
Dato : 21-08-02 22:14 |
|
Larz skrev:
>> Hvorfor skal den låses, og hvad sker der præcis?
>
>Forestil dig at i samme øjeblik dit script trunkerer (tømmer) filen for
>at skrive det nye indhold, ja, så åbnes den af en anden instans, og
>bliver læst... Den nye instans læser noget tomt ind... Den første
>instans skriver det gamle indhold, hvorefter den nye instans skriver en
>tom fil...
Så var det altså hvis der kom flere og 'hentede tælleren' samtidigt...
>> Hvis der ikke er 'ulemper' ved at låse den, hvorfor sker det så ikke
>> automatisk?
>
>Hvis du blot skal læse behøver du ikke låse filen - andre må godt læse
>filen samtidigt.
Men hvad sker der når en fil er låst og flere henter den samtidigt?
Begge kan vel ikke få lov at læse den? Er det den første der prøver at
låse den der 'får lov'? Og også den første der kan få lov at skrive
til filen igen?
Dvs. tælleren vil kun tælle EN gang, selvom der har været 2 besøgende
- hvis altså de prøver at pille ved filen samtidigt?
>Ulemperne er vel at et script kan låse en fil på ubestemt tid...
Oki, men kunne man ikke automatisk sætte den til at låse filen i det
øjeblik en 'gem'-kommandoer køres? Det er vel kun her (og i alle
tilfælde når man vil gemme), at man har behov for det?
Der er vel INGEN grund til IKKE at låse den, når man skal gemme?
Venligst,
Lasse Hedegaard
--
http://www.simlock.dk/ - låsesmeden til din simlock
** - Nu også unlocking af Nokia 3410, 5210 og 6310 **
Få din Nokia 3310 opdateret til 3315! (Version 5.57)
| |
Larz (21-08-2002)
| Kommentar Fra : Larz |
Dato : 21-08-02 23:14 |
|
Lasse Hedegaard wrote:
> Men hvad sker der når en fil er låst og flere henter den samtidigt?
> Begge kan vel ikke få lov at læse den? Er det den første der prøver at
> låse den der 'får lov'? Og også den første der kan få lov at skrive
> til filen igen?
Scriptet hænger indtil den får lov eller det timer ud...
> Oki, men kunne man ikke automatisk sætte den til at låse filen i det
> øjeblik en 'gem'-kommandoer køres? Det er vel kun her (og i alle
> tilfælde når man vil gemme), at man har behov for det?
Jeg tror ikke du kan sætte den op til det... Men du kan da selvfølgelig
skrive en klasse - et abstraktionslag der gør det ;)
> Der er vel INGEN grund til IKKE at låse den, når man skal gemme?
Næææh det skader da ikke ;)
--
-
Lars
http://coder.dk/sohofaq.php - Uofficiel WOL SOHO 77 FAQ
http://wshlman.moons.dk/ - Say goodbye to GameSpy
- A Free Half Life Manager!
To mail me remove your-pants.
| |
Lasse Hedegaard (21-08-2002)
| Kommentar Fra : Lasse Hedegaard |
Dato : 21-08-02 23:28 |
|
Larz skrev:
>Scriptet hænger indtil den får lov eller det timer ud
Selvfølgelig - perfekt!
Tak for hjælpen til jer begge!
Venligst,
Lasse Hedegaard
--
http://www.simlock.dk/ - låsesmeden til din simlock
** - Nu også unlocking af Nokia 3410, 5210 og 6310 **
Få din Nokia 3310 opdateret til 3315! (Version 5.57)
| |
|
|