Ich bin in einer Windows10-Umgebung ausgeführt. Mein PHP-Skript schreibt eine PDF-Datei und ich möchte einfach, dass die Datei in dem von mir angegebenen PDF-Viewer geöffnet wird. Ich verwende die "runAsynchronously" -Funktion, die im PHP-Handbuch angegeben ist, und habe viele Variationen ausprobiert. Ich habe kein Problem damit, den Prozess im Hintergrund laufen zu lassen - er erscheint jedes Mal in meiner TaskManager Prozessliste, aber es erscheint kein Fenster - was mache ich falsch? Wenn ich auf die Link-Datei doppelklicke, die geschrieben wurde, funktioniert es gut. Es hat nichts mit dem Pfad zu der ausführbaren Datei oder dem Dateinamen zu tun - ich kann den PDF-Viewer durch "notepad.exe" und die $ -Datei mit einer geeigneten Textdatei ersetzen - das gleiche passiert, Notizblock erscheint als ein Prozess, aber nicht als ein Fenster, und die Verbindung funktioniert gut.Starten eines externen Programms von PHP
Hier sind einige Code-Schnipsel
$cmd = "C:\\Program Files (x86)\\SumatraPDF\\SumatraPDF.exe";
runAsynchronously($cmd, $file, 7, null, true);
function runAsynchronously($path, $arguments, $windowstyle=1, $lnkfile=null, $exec=true) {
$tmp = (is_null($lnkfile)) ? 'C:\temp\temp.lnk' : $lnkfile;
try {
if(file_exists($tmp)) { unlink($tmp); }
$WshShell = new COM("WScript.Shell");
$oShellLink = $WshShell->CreateShortcut($tmp);
$oShellLink->TargetPath = $path;
$oShellLink->Arguments = $arguments;
$oShellLink->WorkingDirectory = dirname($path);
$oShellLink->WindowStyle = 1;
$oShellLink->Save();
$waitforcompletion = false;
if($exec) {
// Run kicks off the process in the background, but no window gets opened
$oExec = $WshShell->Run($tmp, $windowstyle, $waitforcompletion);
unlink($tmp);
} // if not executed link is left available for manual running
unset($WshShell,$oShellLink,$oExec);
} catch(Exception $ex) {
print $ex->getMessage();
}
}
wissen Sie das PHP ist für serverseitige Skripts gedacht? IMHO das ist Programm für andere Sprache –
@JozefDochan ["PHP ist eine populäre Allzweck-Skriptsprache, die besonders für Web-Entwicklung geeignet ist."] (Http://www.php.net). "Allzweck" ist dort der Schlüsselsatz. – bishop
Mögliches Duplikat von [php Wie starte ich ein externes Programm - Probleme mit System und Exec] (http://stackoverflow.com/questions/1403203/php-how-do-i-start-an-external-program -Running-Probleme-mit-System-und) – HPierce