Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   PHP in Delphi (https://www.delphipraxis.net/154326-php-delphi.html)

mb1996 6. Sep 2010 18:00

PHP in Delphi
 
Hallo Leute,
ich wollte euch mal Fragen, wie man einen PHP-Code in einen Indy HTTP-Server hochläd.
Um einen HTTP-Code habe ich so eine Anweisung benutzt.
Delphi-Quellcode:
Var
  Stream: TFilestream;
  TheString : String;
begin
  if ARequestInfo.Document = '/' then begin
    AResponseInfo.ContentType := 'text/html';
    IF fileexists('index.html') = true then ARequestInfo.Document := 'index.html';
    Stream := TfileStream.Create('Login/index.html', fmOpenRead or fmShareDenyWrite );
    AResponseInfo.ContentStream := Stream;
    setlength(TheString, stream.size);
    stream.Read(TheString[1], stream.size);
  end;
Und wie Funktioniert dieses bei einen PHP-Code?
„AResponseInfo.ContentType := 'php';“???

BUG 6. Sep 2010 18:44

AW: PHP in Delphi
 
Mir ist nicht ganz klar, was du machen willst :|

Du programmierst einen HTTP-Server mit Indy-Komponenten.
Du benutzt den oben gezeigten Code um HTML-Code an z.B. einen anfragenden Browser zu übermitteln.

Was willst du nun tun:
  1. PHP-Code auf diesen Server hochladen?
  2. auf dem Server PHP-Code ausführen?
  3. PHP-Code an den Browser senden (um ihn anzuzeigen)?

rollstuhlfahrer 6. Sep 2010 19:14

AW: PHP in Delphi
 
Zitat:

Zitat von mb1996 (Beitrag 1047866)
Delphi-Quellcode:
    setlength(TheString, stream.size);
    stream.Read(TheString[1], stream.size);
  end;

Diese Zeilen sind eigentlich unnötig, weil sie nichts weiter machen als sinnlos CPU- und RAM-Ressourcen zu fressen. Eventuell fehlt hier was.

Zu deinem Problem: PHP-Code <> HTML. Das heißt für dich: Wenn dein Server die Anfrage für eine PHP-Datei bekommt, sollte er sie normalerweise über php.exe (/usr/bin/php) ausführen lassen. Die Anwendung liefert dann das zurück, was der HTTP-Server an den Browser schicken soll.
Zu den Begriffen: Ein Server sendet (ist einfacher als "ein Server lädt hoch"). Im allgemeinen Sprachgebrauch ist der Upload die Verbindung Client -> Server und nicht umgekehrt. Das nennt man dann Download.

Der Content-Type sollte auch von PHP gesetzt werden. Wenn nicht ist er "text/html".

Wenn ich mir so deinen Code so ansehe, würde ich mal so ganz nebenbei einen Tipp geben: XAMPP. Da ist das alles schon drin und der Apache macht das alles für dich ohne großen Aufwand.

Bernhard

mb1996 21. Sep 2010 13:28

AW: PHP in Delphi
 
Kannst du bitte schreiben, was ich in die Procedure reinschreiben soll.
Ich verstehe das nicht. Wie soll ich die PHP.exe ansprechen?:?:

himitsu 21. Sep 2010 13:38

AW: PHP in Delphi
 
Du müßtest die php.exe aufrufen, dieser über StdIn die nötigen Parameter übergeben und dann deren StdOut abfangen und dieses versenden.

Siehe Delphi-Referenz durchsuchenCreateProcess für die Umleitung der StdIn und StdOut.

Auf http://php.net/ solltest du irgendwo finden, wie man die php.exe ansteuert.

mb1996 21. Sep 2010 13:40

AW: PHP in Delphi
 
???

mb1996 21. Sep 2010 13:52

AW: PHP in Delphi
 
Kann jemand bitte bitte ein Beispiel posten, wie man den Code :
Code:
<?php
echo "Hallo Welt";
?>
hochläd.

rollstuhlfahrer 21. Sep 2010 14:18

AW: PHP in Delphi
 
nochmal: Du sendest mit deinem Server einen Text. Diesen Text liefert dir die php.exe . Du musst also ermitteln, ob
a) die aufgerufene Datei existiert,
b) die aufgerufene Datei eine PHP-Datei ist,
c) wo die php.exe liegt.

Wenn du die drei Punkte hast, kannst du weitermachen. Vorerst versuche etwas anderes: Starte die Kommandozeile (Eingabeaufforderung / CMD) und rufe die php.exe auf (als einzigen Parameter verwendest du den Pfad zu deinem Hallo-Welt-Skript. Dann sollte die Ausgabe in der Konsole sein: "Hallo Welt". Bis das erreicht ist, brauchst du dich gar nicht mit etwas anderem herumzuschlagen.

Zitat:

Zitat von mb1996 (Beitrag 1050955)
Kannst du bitte schreiben, was ich in die Procedure reinschreiben soll.
Wie soll ich die PHP.exe ansprechen?:?:

Tut mir leid, aber das habe ich noch nicht gemacht. Alles, was in Verbindung mit PHP läuft, kann ein fertiger Webserver viel besser. Deshalb auch meine Frage, ob das Programm Apache nicht viel besser dafür geeignet ist. Denke darüber nochmal nach.

Bernhard

mb1996 21. Sep 2010 14:25

AW: PHP in Delphi
 
Danke, wenn ich Fragen habe erkunde ich mich hier nochmal.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:08 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz