Keď žiadam o túto adresu URL:
http://example.com/csv_build.php?filename=test.txt&time=1485902100000&data=25
Očakávam, že PHP kód vytvorí súbor s názvom: datafile.txt
ktoré budú obsahovať tieto údaje:
test.txt,1485902100000,25<CR><LF>
Z nejakého dôvodu, datafile.txt
nie je vytvorený.
Urobil som chybu?
<?
# GRAB THE VARIABLES FROM THE URL
$File = "datafile.txt";
$FileName = $_GET["filename"];
$HeureTronconMesure = $_GET["time"];
$DonneeCapteur = $_GET["data"];
# --------------------------------
$FICHIER = fopen($File, "a");
#ftruncate($FICHIER,0);
fputs($FICHIER, $FileName);
fputs($FICHIER , ",");
fputs($FICHIER, $HeureTronconMesure);
fputs($FICHIER , ",");
fputs($FICHIER, $DonneeCapteur);
fputs ($FICHIER , "rn");
fclose($FICHIER);
?>
odpovede:
3 pre odpoveď č. 1Nevykonávate žiadnu kontrolu chýb.Prečo predpokladáte, že všetko bude fungovať správne? Ak spozorujete nejaké chyby, najskôr by som skontroloval, či sú povolené súbory.
<?php
# GRAB THE VARIABLES FROM THE URL
$File = str_replace("/", "_", $_GET["filename"]);
$FileName = $_GET["filename"];
$HeureTronconMesure = $_GET["time"];
$DonneeCapteur = $_GET["data"];
# --------------------------------
if (!$FICHIER = fopen($File, "a")) {
//there was an error opening the file, do something here
}
fputs($FICHIER, $FileName);
fputs($FICHIER , ",");
fputs($FICHIER, $HeureTronconMesure);
fputs($FICHIER , ",");
fputs($FICHIER, $DonneeCapteur);
fputs ($FICHIER , "rn");
fclose($FICHIER);
?>
Aj keď som naozaj veľmi zjednodušil tento kód pomocou niektoré skratky a zoskupovanie reťazcov.
<?php
// replace any slashes in the filename with underscores
$file = str_replace(["/", "\"], "_", $_GET["filename"]);
// build a string out of your data
$data = "$_GET[filename],$_GET[time],$_GET[data]rn";
// write the data to the file, checking if it returns false
if (!file_put_contents($file, $data)) {
//there was an error writing the file, do something here
}
Všimnite si, že kód nikdy neotvárajte <?
, je to už dávno zastarané <?php
.