JETZT kommts, ... es funzt super auf der Konsole von Linux, (php5 -f
/.fundaccess.php)
Packe ich das Script aber in einen Cronjob, führt er den Befehl aus... der
print_r- Befehl wird auch ausgeführt, und sendet mir in der Cron-
Bestätigungsmail die Datensätze, ABER die CSV-Datei wird nicht angelegt.
Hat jemand eine Idee, woran das liegen kann? Hänge nun schon ethliche Zeit
an dem Problem, komme nicht weiter.
Mal ins Blaue geraten: Der Cronjob f�hrt das Ding aus und befindet sich
in einem anderen Arbeitsverzeichnis, weshalb er keine Rechte zum
schreiben der Datei besitzt? Was sagt denn das getcwd() in beiden f�llen?
Gr��e,
Jens
Suther schrieb am 02.11.2009 in de.comp.lang.php.misc:
> Ich habe ein PHP-Script: http://pastebin.com/d61334031
> Das lie�t aus einer DB Daten aus, und soll diese via PEAR (File_CSV) in eine
> CSV-Datei schreiben...
> JETZT kommts, ... es funzt super auf der Konsole von Linux, (php5 -f
> /.fundaccess.php)
Mit welchem User, welche Rechte hat der in dem Verzeichnis?!
> Packe ich das Script aber in einen Cronjob, f�hrt er den Befehl aus.... der
> print_r- Befehl wird auch ausgef�hrt, und sendet mir in der Cron-
> Best�tigungsmail die Datens�tze, ABER die CSV-Datei wird nicht angelegt.
Kommt daruf an, in welchem Verzeichnis l�uft der Cronjob, welcher USer,
welche Rechte ;-)
> $res = File_CSV::write("./outfile.csv", $headerline, $conf);
Du hast hier einen rel. Pfad drin, suche mal im Dateisystem die Datei,
vielleicht ist die ja doch irgendwo?!
Besser w�re z.B.
> $res = File_CSV::write(dirname(__FILE__).'/outfile.csv', $headerline, $conf);
Damit w�re das Verzeichnis zumindest vorgegeben.
Knut
--
http://es-f.com
Web frontend for esniper, the console application for sniping eBay auctions.
Hallo,
zum einen sehe ich nirgends, wo du das Filehandle f�r das csv-File
aufmachst. Und dann k�nnstest du der Einfachheit halber mal die
Funktionen fgetcsv() und fputcsv() anschauen. Mit PEAR kenn ich mich
weniger aus.
$f = fopen("new.csv", "r+");
if ($f !== FALSE)
{
while ($data = mysql_fetch_array($result,MYSQL_ASSOC))
{
fputcsv($f, $data);
}
fclose($f);
}
else
{
echo "Fehler beim Anlegen der Datei.";
}
Auch bei fputcsv kann man explizit Delimiter und Quotation Characters
angeben.
HTH,
Sebastian
weitere Lekt�re unter www.php.net
Danke für eure hilfe
Jens Himmelrath wrote:
> Suther wrote:
>> Ich habe ein PHP-Script: http://pastebin.com/d61334031
>> Das ließt aus einer DB Daten aus, und soll diese via PEAR (File_CSV) in
>> eine CSV-Datei schreiben...
>>
>> JETZT kommts, ... es funzt super auf der Konsole von Linux, (php5 -f
>> /.fundaccess.php)
>> Packe ich das Script aber in einen Cronjob, führt er den Befehl aus...
>> der print_r- Befehl wird auch ausgeführt, und sendet mir in der Cron-
>> Bestätigungsmail die Datensätze, ABER die CSV-Datei wird nicht angelegt.
>>
>> Hat jemand eine Idee, woran das liegen kann? Hänge nun schon ethliche
>> Zeit an dem Problem, komme nicht weiter.
>
> Mal ins Blaue geraten: Der Cronjob führt das Ding aus und befindet sich
> in einem anderen Arbeitsverzeichnis, weshalb er keine Rechte zum
> schreiben der Datei besitzt? Was sagt denn das getcwd() in beiden fällen?
>
> Grüße,
> Jens