Hola, hab das gleiche Problem, denke ich zumindest.
Ich rufe OpenOffice mit exec auf und möchte ein Makro ausführen zum Konvertieren von Dateien.
Also genauer gesagt mach ich es im Moment über eine Batchdatei.
Um Schnickschnack mit Rechten zu umgehen, hab ich die Batchdatei mal aus php raus erstellen lassen.
(Backslashs sind drin, der schmeißt die hier nur raus. Code ist also soweit korrekt)
Im Taskmanager sehe ich nun das der Prozess (Openoffice) gestartet wurde. Nun weiß ich das PHP solange der Porzess läuft nix mehr macht. Sieht man auch am Browser, rennt sich blöd.
Am Makro liegts nicht, die Batchdatei funktioniert einwandfrei, auch wenn ich das Makro über die Shell starte gibts kein Problem. Sogar wenn ich das Makro (bzw. das entsprechende php Skript) mit php.exe skript.php aus der Kommandozeile ausführe, läuft es fehlerfrei. Nur eben vom Browser aus nicht. Habe allen vorhandenen Benutzern alle Rechte gegeben, ... nix....NERV.
Habs spaßeshalber auch mal mit Notepad versucht. Gleiche Geschicht. Prozess startet, aber sonst passiert nix (wobei das ja glaube ich normal ist, weil exec ja alles invisible startet...).
Die Lösung von toco hört sich ja vielversprechend an, kann ich aber nicht so recht nachvollziehen, was er da genau macht und woran es gelegen hat.
Das gleiche Problem hab ich übrigens nicht nur bei Apache, sondern auch bei IIS.
Ich rufe OpenOffice mit exec auf und möchte ein Makro ausführen zum Konvertieren von Dateien.
Also genauer gesagt mach ich es im Moment über eine Batchdatei.
Um Schnickschnack mit Rechten zu umgehen, hab ich die Batchdatei mal aus php raus erstellen lassen.
PHP-Code:
<?php
error_reporting(E_ALL);
$fp = "test.bat";
$inhalt = '"C:\Programme\OpenOffice.org 2.0\program\soffice.exe"
-invisible "macro:///Standard.MyConversions.saveAsTxt
(D:\eclipse_worksp\zend_Test\1.doc,D:\eclipse_worksp\zend_Test\test.txt)"';
$f = fopen($fp,"w+");
fwrite($f,$inhalt);
fclose($f);
$cmd=('test.bat');
exec($cmd);
echo '<br>';
echo"geht, geht net, geht, geht net...";
?>
Im Taskmanager sehe ich nun das der Prozess (Openoffice) gestartet wurde. Nun weiß ich das PHP solange der Porzess läuft nix mehr macht. Sieht man auch am Browser, rennt sich blöd.
Am Makro liegts nicht, die Batchdatei funktioniert einwandfrei, auch wenn ich das Makro über die Shell starte gibts kein Problem. Sogar wenn ich das Makro (bzw. das entsprechende php Skript) mit php.exe skript.php aus der Kommandozeile ausführe, läuft es fehlerfrei. Nur eben vom Browser aus nicht. Habe allen vorhandenen Benutzern alle Rechte gegeben, ... nix....NERV.
Habs spaßeshalber auch mal mit Notepad versucht. Gleiche Geschicht. Prozess startet, aber sonst passiert nix (wobei das ja glaube ich normal ist, weil exec ja alles invisible startet...).
Die Lösung von toco hört sich ja vielversprechend an, kann ich aber nicht so recht nachvollziehen, was er da genau macht und woran es gelegen hat.
Das gleiche Problem hab ich übrigens nicht nur bei Apache, sondern auch bei IIS.
Kommentar