ich möchte euch gerne Erklären wie ihr es schafft PHP in einer .bat Datei auszuführen.
Viele wissen sicher was PHP ist.
..die hauptsächlich zur Einstellung dynamischer Webseiten oder Webanwenungen verwendet wird.
Jedoch werden wir heute den Spie?? umdrehen und PHP für eine Konsolenanwendung umfunktionieren.
Aber natürlich geht das nicht ganz ohne Ressourcen..
Damit PHP funktionstüchtig auf eurem Computer laufen kann müsst ihr euch folgende Datei herunterladen:
Wenn ihr das Verzeichnes downloadet habt müsst ihr es entpacken und auf eure C: Festplatte legen.
So. Das war die Vorbereitung nun können wir anfangen.
// Dieser Teil kann ausgelassen werden:
Nun kommen wir zum Programmieren einer eigenen Klasse zur Nutzung von PHP in Batch
Diese Klasse dient dazu das wir übliche Konsolencodes die zB aus .NET bekannt sind auch in unserer
Konsolenanwendung nutzen können. Bsp: Console::writeLine(""); statt echo "";
Erstelle eine Datei namens: class.php
Nun können wir 3 verschiedene Funktionen erstellen, je nach belieben könnt ihr euch natürlich irgendeine aussuchen,
ich empfehle aber alle 3.
Wichtig: Die Funktionen die ihr euch aussucht müssen in eine Klasse
class Console { }
So in diese Klasse fügen wir nun die Funktionen ein die wir benötigen.
Nummer 1:
public static function writeLine($TEXT) { echo(trim($TEXT)."rn"); return; }
Diese Funktion ersetzt das typische echo "";
Beispiel:
Console::writeLine("Heute ist ein schoener Tag!");
Nummer 2:
public static function write($text) { echo(trim($text)); return; }
Diese Funktion ist im Grunde genau wie die erste jedoch wird hinterher kein Zeilenumbruch angehangen
Beispiel:
Console::write("Heute ist ein schoener Tag!");
Nummer 3:
public static function readText() { $CONSOLE = fopen('php://stdin', 'r'); return trim(fgets($CONSOLE, 1024)); }
Diese Funktion dient dazu um Variablen auszulesen oder zu erstellen
Beispiel:
Console::writeLine("Mein Name lautet: "); $name = Console::readText();
So nun haben wir unsere Klasse angelegt und es sollte zusammengefasst nun so aussehen:
class Console { public static function writeLine($TEXT) { echo(trim($TEXT)."rn"); return; } public static function write($text) { echo(trim($text)); return; } public static function readText() { $CONSOLE = fopen('php://stdin', 'r'); return trim(fgets($CONSOLE, 1024)); } }
// Der vorherige Inhalt, bis hier, konnte ausgelassen werden
So nun kommen wir zur eigentlichen Batch Datei. Wie man die erstellt brauche ich hoffentlich nicht zu erklären.
Dieser Batch Datei müssen wir nun Informationen liefern.
Als erstes wollen wir keine nervige Message wenn wir die Bat öffnen. Dafür schreiben wir folgendes:
@echo off
Okay nun geben wir unserer Datei einen Titel:
title Datei Name
Und das wichtigste zum Schluss.. Das verweisen auf die Ressourcen:
C:phpphp.exe quelle.php
Das war es eigentlich schon mit dem Tutorial.
So könnte "quelle.php" schlie??lich aussehen:
<?php require_once("class.php"); Console::writeLine("Was ergibt 14+1: "); $ergebnis = Console::readText(); if($ergebnis == "15"){ Console::writeLine("Richtig!"); }else{ Console::writeLine("Leider falsch!"); } while(true){} // Die Schleife ist da damit sich die Datei nicht sofort nach der Eingabe schlie??t! ?>
Bitte beachten:
- Falls ihr die Klasse nicht verwendet müsst ihr das übliche echo ""; nehmen.
- Falls ihr euer Projekt weitergebt muss euer gegenüber auch den PHP Ordner auf seiner Festplatte haben
- Falls Fehler auftreten aufgrund von Rechtschreibfehlern bitte hier melden.
- Falls ihr das Tutorial weitergebt wären Credits ganz toll