Michimu: PHP starten über .bat

Hallo,

versuche schon seit einiger Zeit ein PHP über eine .bat-Datei zu starten bzw. versuche ich mich da erstmal zu informieren und experementiere noch. Habe schon einige Einträge hier und auch wo anders wo gelesen, aber werde daraus einfach nicht schlau.

Daher einfach nochmal meine Frage: Wie kann ich über eine .bat-Datei ein PHP starten. Es werden auch keine Parameter erwartet im php.

Könnt Ihr mir bitte weiter helfen ?

Danke,,,,,
Michimu

  1. Hallo Michimu,

    versuche schon seit einiger Zeit ein PHP über eine .bat-Datei zu starten bzw. versuche ich mich da erstmal zu informieren und experementiere noch. Habe schon einige Einträge hier und auch wo anders wo gelesen, aber werde daraus einfach nicht schlau.

    Ich nehme an, dass Du eine Windows Version im Einsatz hast. Welche?
    Ich nehme an, dass Du PHP installiert hast. Welche Version genau? Du solltest mindestens PHP 4.3.0 im Einsatz haben (ok, ich weiß, dass es CLI bereits bei 4.2.0 gab), siehe http://www.php.net/manual/de/features.commandline.php.
    Hast Du das CLI auch installiert? Ich weiß, dass es bei diversen Komplettpaketen für Windows fehlt.

    Oben angeführter Link hilft Dir auch sonst weiter

    Daher einfach nochmal meine Frage: Wie kann ich über eine .bat-Datei ein PHP starten. Es werden auch keine Parameter erwartet im php.

    Annahme: Windows XP
    PHP: 4.3.x, installiert nach C:\PHP\ php.exe (CLI-Version) liegt in C:\PHP\CLI\php.exe
    Das Verzeichnis C:\PHP\CLI ist nicht in der Umgebungsvariable PATH enthalten

    Dein Skript heißt deinskript.php und liegt in D:\Skripte\PHP\deinskript.php

    1. Du kannst eine Batchdatei schreiben, die genau mit Deinem Skript funktioniert:

    Name der Datei: ein_aussagekraeftiger_name.bat oder ein_aussagekraeftiger_name.cmd

    Inhalt:

    REM Aufruf in der naechsten Zeile startet das PHP-Skript
    C:\PHP\CLI\php.exe D:\Skripte\PHP\deinskript.php

    REM Das war es schon

    Aufruf: ein_aussagekreaeftiger_name

    Wenn diese Version läuft, wagst Du Dich an die nächstschwierigere Variante:

    2. Du kannst eine Batchdatei schreiben, die mit allen Skripten funktioniert

    Inhalt:

    C:\PHP\CLI\php.exe %1

    Aufruf bei dieser Lösung mit

    ein_aussagekraeftiger_name D:\Skripte\PHP\deinskript.php

    Anmerkung: Selbstverständlich solltest Du als sorgfältiger Entwickler bei der zweiten Version eine Fehlerbehandlung einbauen:

    1. Überprüfung der übergebenen Parameter
    2. Überprüfung, ob der übergebene Parameter eine vorhandene Datei ist
      ...

    Freundliche Grüsse,

    Vinzenz

    Vinzenz

    1. Hallo :-)

      also ich habe Windows 2000 Proj mit Apache 2.0.48.
      Unter php/cli ist eine php.exe Datei vorhanden :-)

      REM Aufruf in der naechsten Zeile startet das PHP-Skript
      C:\PHP\CLI\php.exe D:\Skripte\PHP\deinskript.php

      REM Das war es schon

      Habe mal deine Schritter nachgemacht und erhalte dann folgende Fehlermeldung:

      Der Prozedureinsprungspunkt "zend_uv" wurde in der dll "php4ts.dll" nicht gefunden.

      !! Danach wird es abgebrochen.

      Was ist das jetzt wieder :-) ??
      Michimu

      1. Verstehe das nicht, die "php4ts.dll" datei ist aber vorhanden.

      2. Hallo Michimu,

        also ich habe Windows 2000 Proj mit Apache 2.0.48.

        Die apache-Version ist ausnahmsweise einmal völlig überflüssig, wichtiger ist die Version von PHP. Diese ist vom apache prinzipiell gesehen unabhängig.

        Vergiss nicht, Du verwendest die Kommandozeilenversion (CLI steht für Command Line Interpreter), das ist etwas anderes als die in den Webserver eingebundene PHP-Version (CGI oder Modul)

        Unter php/cli ist eine php.exe Datei vorhanden :-)

        Das ist schon einmal erfreulich. Gibt es in diesem Verzeichnis auch eine php4ts.dll?

        Der Prozedureinsprungspunkt "zend_uv" wurde in der dll "php4ts.dll" nicht gefunden.

        !! Danach wird es abgebrochen.

        Was ist das jetzt wieder :-) ??

        Sieht so aus, als passe Deine ph4ts.dll nicht zur php.exe.
        Bitte überprüfe, ob im gleichen Verzeichnis wie php.exe auch eine php4ts.dll vorhanden ist.
        Am besten suchst Du mit der Suchen-Funktion des Explorers nach _allen_ Vorkommen dieser DLL, das ist übrigens eine Programmbibliothek.

        Falls mehrere vorkommen, ermittle von jeder die Versionsnummer, z.B. über Rechtsklick auf die Datei,  Eigenschaften, Registerkarte Version. Sind alle identisch? Du benötigst genau die, die zu Deiner php.exe passt. Möglicherweise gibt es im Suchpfad eine andere Version, die nicht zu Deiner php.exe passt.

        Freundliche Grüsse,

        Vinzenz

        1. :-)))

          Es klappt ... mußte jedoch noch die php4ts.dll und noch eine andere Printer.dll in das gleich eVerzeichnis kopieren und schon hat es funktioniert....

          DANKE... vielmals danke...

          Michimu