PHP-Dateien per Doppelklick öffnen [Lösung]

merls

Grünschnabel
Servus zusammen,
ich denke mal fast jeder der PHP programmiert wird seine Scripts zuerst auf seinem lokalen Webserver (Dank XAMPP ja sehr leicht zu installieren) testen.

Daher kennt auch jeder das Problem das man die php-Dateien nicht per doppelklick öffnen kann da diese sonst nicht geparsed werden sondern einfach nur der inhalt agezeigt wird.

Jeder der fragte ob man php-Dateien per Doppelklick öffnen kann bekam die Antwort das dies nicht geht.

Ich sage euch aber es geht sehr wohl, und ist eigentlich auch garnicht so schwer, dennoch hat es mich mehrere Stunden gekostet den Trick rauszubekommen und umzusetzen.
Wobei die Umsetzung am wenigstens Zeit beansprucht hat *lach*

Einzige Einschränkung ist das man nur php-Dateien per Doppelklick öffnen kann die auch im Document_Root Verzeichnis liegen das man im Apache angegeben hat, aber ich denke das sollte das geringste Problem sein.

Prinzipiell funktioniert es über eine Einfache Weiterleitung per php die als Start Suffix des Internet Explorers über die Dateierweiterung eingegeben wird.

Eine so hoffe ich ausreichend genau Anleitung habe ich dem Archiv beigelegt.
Die Anleitung ist für Win2k sollte aber auch unter XP und Win98 ähnlich sein.

Wenn ich oder nen Kumpel von mir Zeit findet gibts ne kleine Homepage mit Bebildeter Erklärung.

Hier gehts zum download: http://www.merls.de/sonstiges/store/php_redirect.rar


Würde mich freuen wenn ein paar Leute das teil mal testen und mir hier Feedback posten würden. Freue mich natürlich über jedes Post hier will ja mein Wissen nicht für mich behalten und vorallem mit dem Gerücht aufräumen da sman php dateien nicht per Doppelklick aufrufen kann :)

Gruß
Torsten Mihatsch
 
Zuletzt bearbeitet:
Nur so als Anregung, es wäre doch auch möglich, ein eigenes Programm zwischen zu schalten (über die Registry), das programm fängt den Namen der zu startenden PHP-Datei ab und kopiert sie in einen Ordner des Root-Verzeichnises des lokalen Web-Servers. Dann nur noch die Datei als URL lokal aufgerufen und es kann geparst werden, was das Zeug hält.:-)

So ein Programm lässt sich leicht mit VB oder C realisieren, man müsste nur noch das Document_Root-Verzeichnis angeben und (wenn gewünscht) ein Unterverzeichnis zum Speichern.


Der Doc!
 
Dabei hast du aber das problem das includete dateien nicht mitkopiert werden können und somit manche scripts nicht vollständig laufen würden.
 
Das ist wahr, aber wenn ich das alles mitberechnen würde, würde das ganze hier sowieso keinen Sinn mehr machen. Das hier ist ja nur dann Sinnvoll, wenn ich aber nur eine Datei testen will.

Andererseits, könnte man ja die Datei auf Includes parsen und die miteinbinden. Jede Lösung hat was für sich, je nachdem wie man sich entscheidet.


Der Doc!
 
die doppelklick variante selbst ist auch für größere projekte sinnvoll die man lokal testen will. würde das nicht nur auf eine datei beschränkt betrachten. z.b. kann ich so ein komplettes shopsystem auf dem eigenen rechner testen bevor ich es hochlade. auch hier kann ich die index.php einfach per doppelklick öffnen und der rest läuft dann ganz normal.

Sicherlich jede Lösung hat vor und nachteile.
Aber wenn du auch noch includes parsen musst wird das ganze schon wieder arg aufwändig.
Denke aber es wäre sinnvoll ein vb script zu proggen das man von überall aus aufrufen kann.
denn meine php redirect variante hat den nachteil das die redirect.php schon im htdocs oder wie auch immer man sein Document_Root einstellt drin sein muss.

ne exe hätte den vorteil das man sie sonstwohin packen kann da sie unabhängig vom webserver laufen würde.
 
Ach was , lass dich nicht so schnell entmutigen:)

Die Idee ist doch erstamal prima... spart das tippen in der Adresszeile.
Dass die Dateien innerhalb von DOCUMENT_ROOT abgelegt sein müssen, halte ich für wenig tragisch... dort hat man sie idR. sowieso.... und ohne Webserver kommt man da ohnehin nicht weit, schliesslich will man seine Skripte ja grad damit testen.

Aber selbst, wenn die Dateien ausserhalb von DOCUMENT_ROOT liegen, gibt Workarounds.

bspw:redirect.php
Code:
<?php

if(isset($_GET['redirect']))
    {
    include($_GET['redirect']);
    }

?>
... statt umzuleiten, include die entsprechende PHP-Datei...dann werden wiederum darin includete Skripte ordentlich geparst.

Links und Pfade zu bspw. Bildern usw. stimmen dann zwar nicht... aber auch dafür gibts sicher eine Lösung(per mod_rewrite zum Beispiel)

Übrigens: DOCUMENT_ROOT kann man auch problemlos über $_SERVER['DOCUMENT_ROOT'] ermitteln ;)
 
Nuja ich sehe das genauso wie du Sven die Dateien dieman grade entwickelt liegen sowieso auf dem webserver bzw. im Document_Root oder darunter, daher ist ein doppelklick ausserhalb auch realtiv nutzlos. Vorallem wenn ich nicht alle dazugehörigen scripte vollständig und fehlerlos testen kann.

Davon mal abgesehn ging es vorher mit doppelklick ja garnicht und sogar profis in sachen webserver gaben diese aussage, zum andere war es vorher auch nicht möglich php dateien zu parsen die auserhalb des webservers lagen, warum die also versuchen zu ändern *gg*

und wer sowas unbedingt braucht der soll halt d:ß als document root angeben :)

aber das mit dem $_SERVER['DOCUMENT_ROOT']werd ich mir mal anschaun, wäre ne klasse sache denn der ie dürfte auch bei jedem gleich sein so braucht man an der php nichts mehr zu ändern :)

Edit: Danke der Tip war gut hab das script entsprechend angepasst ud es funktioniert wunderbar. THX das Archiv ist geupdated :)
 
Zuletzt bearbeitet:
Hi,

leider funktioniert die Umleitung bei mir nicht (XP mit SP3).
Der IE gibt folgende Fehlermeldung:
Zugriff verweigert!
Der Zugriff auf das angeforderte Objekt ist nicht möglich. Entweder kann es vom Server nicht gelesen werden oder es ist zugriffsgeschützt.

Sofern Sie dies für eine Fehlfunktion des Servers halten, informieren Sie bitte den Webmaster hierüber.

Error 403
localhost
12.09.2010 10:38:21
Apache/2.2.14 (Win32) DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l mod_autoindex_color PHP/5.3.1 mod_apreq2-20090110/2.7.1 mod_perl/2.0.4 Perl/v5.10.1

Kann ich da im IE irgendwas einstellen, dass es klappt?

MfG Knut
 
Zurück