Portable PHP-App direkt vom Stick – DBF-Editor ohne Webserver

Moderator: Moderatoren

Antworten
Benutzeravatar
azzo
1000 working lines a day
1000 working lines a day
Beiträge: 919
Registriert: So, 28. Mär 2010 19:21
Hat sich bedankt: 15 Mal
Danksagung erhalten: 21 Mal

Portable PHP-App direkt vom Stick – DBF-Editor ohne Webserver

Beitrag von azzo »

Hallo,
hätte mir nicht gedacht, dass es möglich ist, ganz ohne Webserver einfach eine portable PHP-Version aufzurufen.
Ich kann jetzt z. B. wie mit einem klassischen dBase-Editor die .dbf-Dateien direkt im Browser durchblättern – mit Navigation, Suche und sogar Bearbeitung.

Und das Ganze läuft komplett lokal – sogar vom USB-Stick.
Man merkt eigentlich keinen Unterschied zu einer klassischen .exe. Kein Apache, kein XAMPP – einfach php.exe -S und fertig.

Bin echt überrascht, wie einfach sich das kombinieren lässt:
DBF + PHP + Browser = moderne Oberfläche ohne Installationsstress.

LG
Otto

Bild
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15794
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 87 Mal
Danksagung erhalten: 43 Mal
Kontaktdaten:

Re: Portable PHP-App direkt vom Stick – DBF-Editor ohne Webserver

Beitrag von brandelh »

azzo hat geschrieben: Mo, 14. Apr 2025 20:11 Bin echt überrascht, wie einfach sich das kombinieren lässt:
DBF + PHP + Browser = moderne Oberfläche ohne Installationsstress.

einfach php.exe -S und fertig.
wie genau ist einfach ?
klickst du auf die PHP Datei und der Browser interpretiert ?

sieht wirklich gut aus, hast du code vom Aufruf des DBF Editors oder ist das Fremdsoftware ?
Gruß
Hubert
Benutzeravatar
azzo
1000 working lines a day
1000 working lines a day
Beiträge: 919
Registriert: So, 28. Mär 2010 19:21
Hat sich bedankt: 15 Mal
Danksagung erhalten: 21 Mal

Re: Portable PHP-App direkt vom Stick – DBF-Editor ohne Webserver

Beitrag von azzo »

Hallo Hubert,
Die Anwendungen sind reine PHP-Programme. Ich wollte hier nur zeigen, wie man ohne Apache nur mit `php -S` arbeiten kann.

Kein externer Webserver nötig – alles portable. Du kannst das Ganze als ZIP verteilen oder später zu einer .EXE packen.

Hier ist mein Startfile für `php -S`: `info.php`.



LG
Otto

@echo off
cd /d %~dp0
start "" /min php -S 127.0.0.1:8000 -t www
timeout /t 1
start "" "msedge.exe" --app="http://127.0.0.1:8000/index.php"

Verzeichnisstruktur:

Code: Alles auswählen

app-folder\
├── www\
│   ├── index.php
│   └── weitere_php_dateien.php
├── start_app.cmd
└── php.ini (optional)


Hier mit Verzeichnis von PHP und im APP Mode

So verwendest du es
Lege den Ordner z. B. auf den Desktop.

Doppelklicke auf start_app.cmd.

Der Browser öffnet sich im App-Modus.

Du entwickelst wie gewohnt mit index.php, arbeitest lokal und brauchst keinen Webspace oder Server.


Code: Alles auswählen



@echo off
cd /d %~dp0
set PHP_EXE=C:\test\php\php.exe
set PORT=8010

echo Starte lokalen PHP-Webserver auf Port %PORT% ...
start "" /min "%PHP_EXE%" -S 127.0.0.1:%PORT% -t www
timeout /t 1 >nul

echo Öffne Browser im App-Modus ...
start "" "msedge.exe" --app="http://127.0.0.1:%PORT%/index.php"




Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15794
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 87 Mal
Danksagung erhalten: 43 Mal
Kontaktdaten:

Re: Portable PHP-App direkt vom Stick – DBF-Editor ohne Webserver

Beitrag von brandelh »

ich bin ja kein PHP Fachmann, daher die Fragen ... zu dem Parameter -S kann ich im PHP Handbuch nix finden (vermutlich weiß ich den richtigen Begriff nicht)
Gruß
Hubert
Benutzeravatar
azzo
1000 working lines a day
1000 working lines a day
Beiträge: 919
Registriert: So, 28. Mär 2010 19:21
Hat sich bedankt: 15 Mal
Danksagung erhalten: 21 Mal

Re: Portable PHP-App direkt vom Stick – DBF-Editor ohne Webserver

Beitrag von azzo »

Hallo Hubert,

die offizielle Dokumentation zur Kommandozeilennutzung von PHP finden Sie bei php.net:

Allgemeine Einführung & CLI-Features
https://www.php.net/manual/de/features.commandline.php
PHP

Vollständige Liste aller CLI‑Optionen
https://www.php.net/manual/de/features. ... ptions.php
PHP

LG
Otto
Benutzeravatar
Slavko
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 42
Registriert: Mi, 20. Dez 2023 11:03
Wohnort: Negotin
Hat sich bedankt: 1 Mal
Danksagung erhalten: 7 Mal
Kontaktdaten:

Re: Portable PHP-App direkt vom Stick – DBF-Editor ohne Webserver

Beitrag von Slavko »

Hallo,

Jede PHP-Programmdatei kann im DOS-Modus ohne Webserver und Internetbrowser ausgeführt werden. Fügen Sie einfach den PHP-Installationsordner in Ihre PATH-Umgebungsvariable ein und rufen Sie PHP folgendermaßen auf:

php myfile.php

Wenn Sie diesen Aufruf aus Ihrer XPP-Anwendung mit einer Shell-EXE ausführen, können Sie ein PHP-Programm direkt aus Ihrer XPP-Anwendung heraus ausführen. Es ist nicht erforderlich, eine DOS-Batchdatei wie im Otto-Beispiel zu erstellen. PORT ist im PHP-DOS-Modus unwichtig und bedeutungslos. Ich verwende diese Methode in meiner PowerWeb-Bibliothek, um E-Mails mit einem in PHP erstellten SMTP-Client zu versenden.

Sie können Parameter an ein PHP-Programm übergeben und Ergebnisse über eine Texteingabe- bzw. -ausgabedatei abrufen.
Slavoljub Damnjanovic
SD-SoftDesign, Alaska Software Technology Partner
https://www.sd-softdesign.com
https://www.sd-softdesign.rs
Benutzeravatar
azzo
1000 working lines a day
1000 working lines a day
Beiträge: 919
Registriert: So, 28. Mär 2010 19:21
Hat sich bedankt: 15 Mal
Danksagung erhalten: 21 Mal

Re: Portable PHP-App direkt vom Stick – DBF-Editor ohne Webserver

Beitrag von azzo »

Hallo,
es ist genau so, wie Slavko es beschreibt.

Wann sollte man `php -S` verwenden?
Dann, wenn man eine Weboberfläche braucht – zum Beispiel bei einem Tool wie xbrowser.
Auch wenn man JavaScript, HTML und Stylesheets gemeinsam nutzen will oder GET- und POST-Parameter verarbeiten möchte, ist `php -S` ideal.
Ebenso, wenn man Formulare nutzen oder Ergebnisse direkt im Browser anzeigen will, ist der eingebaute PHP-Webserver sehr praktisch.

Und wenn man nur eine Brücke zwischen Xbase++ (XPP) und PHP bauen will, braucht man gar keinen Webserver.
XPP- oder FiveWin-Nutzer können PHP direkt im DOS-Modus aufrufen:

Code: Alles auswählen

RUN "php meinTool.php param1 param2"

Im PHP-Skript kann man die Parameter über `$_SERVER['argv']` auslesen, mit `file_put_contents()` eine Text- oder JSON-Datei erzeugen und diese dann aus XPP wieder einlesen.

So entsteht eine einfache, schnelle Verbindung zwischen XPP und PHP – ganz ohne Webserver und ohne Browser.

LG
Otto
Benutzeravatar
azzo
1000 working lines a day
1000 working lines a day
Beiträge: 919
Registriert: So, 28. Mär 2010 19:21
Hat sich bedankt: 15 Mal
Danksagung erhalten: 21 Mal

Re: Portable PHP-App direkt vom Stick – DBF-Editor ohne Webserver

Beitrag von azzo »

Hallo Slavko,
danke für deine Hinweise zur PHP-Integration.

Eine kurze Frage:
Was ist deiner Meinung nach der beste Weg, um ein PHP-Ergebnis (z. B. als Text oder JSON) direkt nach Xbase++ oder Harbour zurückzuholen – bevorzugst du die Übergabe über eine Datei oder liest du die Ausgabe direkt über STDOUT ein?

Danke und viele Grüße
Otto
Benutzeravatar
Slavko
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 42
Registriert: Mi, 20. Dez 2023 11:03
Wohnort: Negotin
Hat sich bedankt: 1 Mal
Danksagung erhalten: 7 Mal
Kontaktdaten:

Re: Portable PHP-App direkt vom Stick – DBF-Editor ohne Webserver

Beitrag von Slavko »

Hallo Otto,

Ich bevorzuge und verwende Textdateien für Ein- und Ausgabe. Dadurch sind Anzahl und Länge der Elemente unbegrenzt. Sie müssen sie durch eine von Ihrer Anwendung erstellte zufällige Grenze trennen. Für die Eingabe verwenden Sie file_get_contents() und explode(). Für die Ausgabe verwenden Sie implode() und file_put_contents().

Wenn Sie Inline-Parameter übergeben, wie in Ihrem Beispiel, ist meiner Meinung nach die Länge der PHP-Befehlszeile begrenzt. Bei Verwendung des JSON-Formats ist zusätzlicher Serialisierungs-/Analyseaufwand erforderlich, und das Format ist größer als im Textformat.
Slavoljub Damnjanovic
SD-SoftDesign, Alaska Software Technology Partner
https://www.sd-softdesign.com
https://www.sd-softdesign.rs
Benutzeravatar
azzo
1000 working lines a day
1000 working lines a day
Beiträge: 919
Registriert: So, 28. Mär 2010 19:21
Hat sich bedankt: 15 Mal
Danksagung erhalten: 21 Mal

Re: Portable PHP-App direkt vom Stick – DBF-Editor ohne Webserver

Beitrag von azzo »

Hallo Slavko,

vielen Dank für deine klare Antwort – das bestätigt meinen Eindruck.

Ich denke, dass PHP – und wahrscheinlich auch PowerShell – für uns Xbase++/Harbour-Entwickler in Zukunft eine immer wichtigere Rolle spielen wird. Vor allem dann, wenn Funktionen gebraucht werden, die in unserer Sprache (noch) nicht verfügbar sind.
Mit einfachen Brücken über Textdateien oder standardisierte Formate lassen sich viele moderne Tools sehr gut einbinden.

Viele Grüße
Otto
Benutzeravatar
nightcrawler
1000 working lines a day
1000 working lines a day
Beiträge: 709
Registriert: Di, 24. Apr 2012 16:33
Wohnort: 72184 Weitingen
Hat sich bedankt: 4 Mal
Danksagung erhalten: 118 Mal
Kontaktdaten:

Re: Portable PHP-App direkt vom Stick – DBF-Editor ohne Webserver

Beitrag von nightcrawler »

brandelh hat geschrieben: Do, 17. Apr 2025 4:01 ich bin ja kein PHP Fachmann, daher die Fragen ... zu dem Parameter -S kann ich im PHP Handbuch nix finden (vermutlich weiß ich den richtigen Begriff nicht)
Kommandozeile öffnen
php --help

damit bekommst du die komplette Liste. -S startet einen Webserver.
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
Benutzeravatar
azzo
1000 working lines a day
1000 working lines a day
Beiträge: 919
Registriert: So, 28. Mär 2010 19:21
Hat sich bedankt: 15 Mal
Danksagung erhalten: 21 Mal

Re: Portable PHP-App direkt vom Stick – DBF-Editor ohne Webserver

Beitrag von azzo »

Damit es nicht so abstrakt bleibt – ein kleines Beispiel.
Hier das Auslesen eines Verzeichnisses mit PHP, aufgerufen aus Xbase++ oder Harbour. Ideal, wenn man kleine Aufgaben auslagern möchte.

get_dir.php – PHP listet Dateien im aktuellen Verzeichnis auf:

Code: Alles auswählen


<?php
$folder = "."; // aktuelles Verzeichnis

$files = scandir($folder);
$content = "Verzeichnisliste:\n";

foreach ($files as $file) {
    if ($file === "." || $file === "..") continue;
    $content .= "- " . $file . "\n";
}

file_put_contents("ergebnis.txt", $content);
?>

dir_test.prg – Aufruf über Harbour (FiveWin/Xbase++-kompatibel):

Code: Alles auswählen

#include "fivewin.ch"

PROCEDURE Main
   LOCAL cPHPExe   := "C:\\portable-php-app\\php\\php.exe"
   LOCAL cScript   := "C:\\portable-php-app\\get_dir.php"
   LOCAL cCommand  := '"' + cPHPExe + '" "' + cScript + '"'
   LOCAL cErgebnis := ""

   WAITRUN( cCommand )  // PHP ausführen

   IF FILE( "ergebnis.txt" )
      cErgebnis := MEMOREAD( "ergebnis.txt" )
      ? "Verzeichnisinhalt:"
      ? LEFT( cErgebnis, 200 )
   ELSE
      ? "Fehler: Datei 'ergebnis.txt' nicht gefunden."
   ENDIF

   RETURN
So lassen sich z. B. E-Mail-Versand, JSON-Verarbeitung oder Webabfragen ganz einfach auslagern.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15794
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 87 Mal
Danksagung erhalten: 43 Mal
Kontaktdaten:

Re: Portable PHP-App direkt vom Stick – DBF-Editor ohne Webserver

Beitrag von brandelh »

danke für die Infos
Gruß
Hubert
Benutzeravatar
azzo
1000 working lines a day
1000 working lines a day
Beiträge: 919
Registriert: So, 28. Mär 2010 19:21
Hat sich bedankt: 15 Mal
Danksagung erhalten: 21 Mal

Re: Portable PHP-App direkt vom Stick – DBF-Editor ohne Webserver

Beitrag von azzo »

Was bringt der hybride Ansatz konkret?

Step-by-Step-Umstieg vom Desktop zur Webtechnik

Durch die Kombination von xBase/Harbour und PHP (z. B. mit dem eingebauten PHP-Webserver) lassen sich neue Komponenten direkt als Webmodule entwickeln, ohne dabei die gewohnte Desktop-Umgebung oder lokale Arbeitsweise aufzugeben. Bestehende Harbour-Anwendungen können so Schritt für Schritt erweitert werden – etwa durch Konfigurationseditoren, Verwaltungswerkzeuge oder Viewer – ohne dass eine komplette Umstellung notwendig ist. Der hybride Ansatz ermöglicht damit einen sanften, kontrollierten Übergang in die Webwelt: Module werden im Browser bereitgestellt, sind aber weiterhin lokal lauffähig – etwa über einen USB-Stick, eingebettet im Desktop oder gestartet aus der EXE.

Diese Übergangsstrategie reduziert Risiko, erhält bewährte Prozesse und erlaubt es, Webtechnik dort einzusetzen, wo sie echten Mehrwert bringt – ohne alles neu zu denken.

Der INI-Editor dient als Beispiel für einen praxisorientierten Hybridansatz, bei dem Harbour und PHP sinnvoll zusammenarbeiten. Der Editor selbst ist in PHP umgesetzt, läuft ohne Installation über den eingebauten PHP-Webserver (php -S) und eignet sich ideal für portable Szenarien, z. B. von einem USB-Stick. Die INI-Dateien können sich dabei sowohl im Projektverzeichnis als auch auf anderen Laufwerken befinden, etwa auf einer eingebauten Festplatte im System.
Die Funktionen GetPrivateProfileString() und WritePrivateProfileString() wurden in PHP mit identischem Funktionsnamen und Aufrufverhalten wie in Harbour nachgebildet, um eine möglichst nahtlose Integration bestehender Konzepte zu ermöglichen.


Bild
Antworten

Zurück zu „PHP“