4D v16.3PHP Execute |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v16.3
PHP Execute
PHP Execute
Die Funktion PHP Execute ermöglicht, ein PHP Skript bzw. Funktion auszuführen. Im Parameter SkriptPfad übergeben Sie den Pfadnamen des auszuführenden PHP Skript. Das kann ein relativer Pfad sein, wenn die Datei neben der Struktur der Datenbank liegt, oder ein absoluter Pfad. Der Pfadname lässt sich entweder in System Syntax oder in POSIX Syntax ausdrücken. Um eine standardmäßige PHP Funktion direkt auszuführen, übergeben Sie einen leeren String ("") in SkriptPfad. Der Funktionsname muss im zweiten Parameter übergeben werden. Übergeben Sie einen PHP Funktionsnamen in FunktionName, wenn Sie in SkriptPfad eine spezifische Funktion ausführen wollen. Übergeben Sie einen leeren String oder lassen den Parameter FunktionName weg, wird das Skript vollständig ausgeführt. Hinweis: PHP berücksichtigt Klein- und Großschreibung für Funktionsnamen. Verwenden Sie keine Klammern, sondern geben nur den Funktionsnamen ein. Der Parameter phpErgebnis empfängt das Ergebnis der Ausführung der PHP Funktion. Sie können folgendes übergeben:
Rufen Sie eine PHP Funktion auf, die Argumente erwartet, übergeben Sie einen oder mehrere Werte in Param1...N. Die Werte müssen durch Strichpunkte voneinander getrennt sein. Sie können vom Typ Alpha, Text, Boolean, Zahl, Ganzzahl, Lange Ganzzahl, Datum oder Zeit sein. Bilder, BLOBs und Objekte werden nicht akzeptiert. Sie können ein Array senden, dazu müssen Sie in der Funktion PHP Execute einen Zeiger auf das Array übergeben. Ansonsten wird der aktuelle Index des Array als Ganzzahl gesendet (siehe Beispiel). Der Befehl akzeptiert alle Arten von Arrays, außer für Zeiger, Bild und 2D Arrays. Hinweis: Aus technischen Gründen dürfen Parameter, die über das Protokoll Fast CGI übergeben werden, nicht größer als 64 KB sein. Sie müssen diese Beschränkung insbesondere bei Parametern vom Typ Text berücksichtigen. Der Befehl gibt Wahr zurück, wenn die Ausführung auf 4D Seite korrekt ausgeführt wurde, d.h. wenn Starten der Ausführungsumgebung, Öffnen des Skripts und Herstellen der Kommunikation mit dem PHP Interpreter erfolgreich waren. Andernfalls wird ein Fehler erzeugt, den Sie mit ON ERR CALL abfangen und mit GET LAST ERROR STACK analysieren können. Hinweis: Über PHP lässt sich die Fehlerverwaltung konfigurieren. Weitere Informationen dazu finden Sie unter http://www.php.net/manual/en/errorfunc.configuration.php#ini.error-reporting. Nachfolgende Tabelle gibt an, wie 4D Daten gemäß dem Typ phpErgebnis interpretiert und konvertiert.
(*) Standardmäßig werden keine HTTP zurückgegeben: Hinweis: Müssen Sie über PHP große Datenmengen übernehmen, ist es in der Regel effizienter, über den Puffer stdOut zu gehen (Befehl echo oder ähnlich) anstatt über die Funktion return. Weitere Information dazu finden Sie in der Beschreibung zum Befehl PHP GET FULL RESPONSE. Mit dem Befehl SET ENVIRONMENT VARIABLE können Sie die vom Skript verwendeten Umgebungsvariablen definieren. 4D bietet folgende Spezialfunktionen:
Beachten Sie, dass der Interpreter automatisch gestartet wird, wenn PHP Execute die erste Anfrage sendet. Das Skript "myPhpFile.php" ohne Funktion aufrufen. Sein Inhalt lautet: <?php Der folgende 4D Code: C_TEXT($result) ... zeigt an "Current PHP version: 5.3" Die Funktion myPhpFunction im Skript "myNewScript.php" mit Parametern aufrufen. Der Inhalt des Skript lautet: <?php Aufruf mit Funktion: C_TEXT($result) PHP Interpreter beenden: $ifOk:=PHP Execute("";"quit_4d_php") Fehlerverwaltung: // Installation der Fehlerverwaltungsmethode Die Methode PHP_errHandler lautet: phpCommError:="" Dynamische Skript-Erstellung von 4D vor seiner Ausführung: DOCUMENT TO BLOB("C:\Scripts\MyScript.php";$blobDoc) Dann wird das Skript ausgeführt: $err:=PHP Execute("C:\Scripts\MyScript.php";"Funktion2Umbenennen_v2";*) Wert vom Typ Datum und Zeit direkt ausfindig machen. Das Skript dafür lautet: <?php Datum auf 4D Seite empfangen: C_DATE($phpResult_date) Daten in Arrays verteilen: ARRAY TEXT($arText ;0) Initialisation eines Array: ARRAY TEXT($arText ;0) Parameter über ein Array übergeben: ARRAY INTEGER($arInt;0) Einfaches Beispiel zur Trim Funktion, um zusätzliche Leerzeichen bzw. unsichtbare Zeichen von Anfang bis Ende eines String zu entfernen: C_TEXT($T_String) Weitere Informationen zur Trim Funktion finden Sie in der PHP Dokumentation.
Siehe auch
PHP GET FULL RESPONSE
|
EIGENSCHAFTEN
Produkt: 4D
GESCHICHTE
Erstellt: 4D v12 ARTIKELVERWENDUNG
4D Programmiersprache ( 4D v16) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||