Toon posts:

[PHP&MySQL] via fwrite() bestand leegmaken?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

Ik zit met een probleempje, eventjes de situatie uitleggen.

Een machine zet om de 3 minuten een *.DAT bestand via FTP op m'n webserver; De bedoeling is dat ik via PHP&MySQL dit bestand verwerkt.

Ik doe dus hetvolgende
PHP:
1
2
3
4
5
6
7
8
9
10
$bestand=array_reverse(file("datalog.dat"));

foreach($bestand as $i)  
{  
    $i=explode("|",$i);  
    $uur = $i[0]; 
    $machine= $i[1]; 
    $bericht = $i[2];

mysql_query("insert into datalog (tijdstip, machine, PLC) Values('".$uur."','".$machine."','".$bericht."');") or die(mysql_error());


nu werkt dit allemaal goed en wel, de data komt in de database, maar het probleem is dat dit gebeurd iedere keer de pagina laadt. Dus na 10 views krijg ik 10 keer die data in m'n database.

Nu zou ik dat *.DAT bestand willen leegmaken via een fwrite functie() ofzo als ie de data in database heeft gezet, en dan met een

PHP:
1
2
3
if($bericht="")
{ 
blabla


maar hou maak ik dat bestandje leeg via PHP ? ik heb al geprobeerd een lege string toe te voegen in de *.DAT file, maar ie plaatst dit gewoon erachter.
of zou er een andere oplossing bestaan om die 10 keer dezelfde data te vermijden?

na bv die 3 minuten komt er een nieuwe *.DAT file op, en dan moet ie terug de data toevoegen .

Iemand die me uit de nood kan helpen?

vriendelijke groeten,
Reeva

  • Mangeloos
  • Registratie: Februari 2003
  • Laatst online: 23-12-2025
met:
PHP:
1
2
3
$fp=fopen("datalog.dat",'w');
fwrite($fp,"");
fclose($fp);

[ Voor 108% gewijzigd door Mangeloos op 24-11-2005 15:29 ]


  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 23-04 16:22
Of
PHP:
1
file_put_contents('text.txt', '');

[ Voor 38% gewijzigd door djluc op 24-11-2005 15:27 ]


Verwijderd

Topicstarter
Mangeloos schreef op donderdag 24 november 2005 @ 15:26:
met:
PHP:
1
2
3
$fp=fopen("datalog.dat",'w');
fwrite($fp,"");
fclose($fp);
thx alot :d

ik had dit ook al geprobeerd, maar dit zonder de 'w' .. dat wist ik niet.

Erg bedankt!
grtz

Verwijderd

Topicstarter
M'n laatste ' klein ' probleem die ik nog heb in het ganse systeem is het volgende.

De data wordt maar in de database gestoken als die pagina ( bv datalog.php ) wordt aangeroepen. Maar stel dat deze pagina in een tijdsspan niet wordt aangeroepen, en er komt reeds een nieuwe *.DAT file op de server, deze overschrijft automatische de bestaande, waar nog data van de vorige sessie instond.

Ik kan maar niets bedenken hoe ik dit kan omzeilen, want die file heeft iedere keer een zelfde naam?

Hou zou ik ervoor kunnen zorgen dat vanals er een nieuwe file op de webserver staat, deze vanzelf in de mySQL database kan gaan?

Vriendelijke groeten,
Reeva.be

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 23-04 16:22
Ik heb gewoon een commandline scriptje draaien als service, in het bestandje staat iets als:
PHP:
1
2
3
4
while(true) {
  //doewat
  sleep(10);
}

Verwijderd

Ooit gehoord van Cronjob ?

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 23-04 16:22
Ja, als je echter op je scherm de status wilt zien is dit stukken handiger. Of je moet met een echte programmeertaal gaan werken waarmee je bijvoorbeeld MSN-alike popupjes rechtsonder in je scherm kunt maken.

Verwijderd

Topicstarter
ja dat ken ik, maar m'n site wordt gehost ergens anders waar ik niet bij kan.

Ik kan natuurlijk wel via mijn pc deze cronjob uitvoeren, maar pc werkt natuurlijk niet 24/7 :?

bedankt voor de reactie
Pagina: 1