webForumDet fria alternativet

Öppna PHP-fil i editor

8 svar · 2 751 visningar · startad av evesve

evesveMedlem sedan sep. 2001163 inlägg
#1

Hej!
Jag söker en lösning för lokalt bruk. Alltså när jag "leker" med programmering.
Med den här koden får jag fram filnamnet typ index.php.
Även länken fungerar för att öppna filen typ http://localhost/index.php
Lösningen jag söker är att jag vill klicka på länken och öppna filen i förhandsvald editor.

$filename=basename($_SERVER['REQUEST_URI']);
echo "<A HREF='".$filename."'>".$filename."</A>";

Jag har en lösning där jag har en texteditor inbakad i sidan.
Det fungerar bra för att ändra stavfel m.m. men inte för större ändringar.

Något bra tips?
Hittar inget bra på nätet.

nitro2k01Medlem sedan aug. 20039 342 inlägg
#2

Skaffa en editor som kan redigera filer över FTP?

evesveMedlem sedan sep. 2001163 inlägg
#3

nitro2k01 skrev:

Skaffa en editor som kan redigera filer över FTP?

Tackar, men kan det lösa problemet?
Jag har med koden skapat en länk till filen jag tittar på.
Klickar jag på länken så öppnas filen i webläsaren.
Jag vill med automatik kunna klicka på en länk så filen öppnas i min editor (f.n. PSPad).
Det går givetvis att jobba på andra hållet, d.v.s. att jobba i editorn och kolla resultatet i editor eller i webläsare.
Jag har tänkt mig ett litet "album" med kodexempel som jag kan redigera efter hand som jag hittar något bättre.
Därför vill jag jobba direkt i webläsaren från start.
Det handlar bara om filer som ligger under localhost. Inte på nätet.

nitro2k01Medlem sedan aug. 20039 342 inlägg
#4

evesve skrev:

Det handlar bara om filer som ligger under localhost. Inte på nätet.

Aha! Det sätter saken i ett annat perspektiv! Använd kommandot exec eller system i PHP. Typ:

exec('C:\\Program files\\PSPad\\PSPad.exe '. $full_path_to_file);

Självklart måste du ange rätt sökväg till programmet. Pathen till filen måste troligen konverteras till Windows-format. Ev. fungerar exec som så att kommandot måste avslutas innan sidan slutar ladda, vilket skulle kunna betyda att editorn stängs om du stoppar laddningen av sidan. Lägg isåfall till start.exe först i strängen. Det kan också vara så att editorn körs som samma användare som Apache, vlket inte är ditt användarkonto om Apache körs som en tjänst. Kan skapa problem. Vet ej säkert hur man hanterar det.

evesveMedlem sedan sep. 2001163 inlägg
#5

nitro2k01 skrev:

Aha! Det sätter saken i ett annat perspektiv! Använd kommandot exec eller system i PHP. Typ:

exec('C:\\Program files\\PSPad\\PSPad.exe '. $full_path_to_file);

Självklart måste du ange rätt sökväg till programmet. Pathen till filen måste troligen konverteras till Windows-format. Ev. fungerar exec som så att kommandot måste avslutas innan sidan slutar ladda, vilket skulle kunna betyda att editorn stängs om du stoppar laddningen av sidan. Lägg isåfall till start.exe först i strängen. Det kan också vara så att editorn körs som samma användare som Apache, vlket inte är ditt användarkonto om Apache körs som en tjänst. Kan skapa problem. Vet ej säkert hur man hanterar det.

Värt att testa!
Ska leka lite i kväll!

evesveMedlem sedan sep. 2001163 inlägg
#6

nitro2k01 skrev:

Aha! Det sätter saken i ett annat perspektiv! Använd kommandot exec eller system i PHP. Typ:

exec('C:\\Program files\\PSPad\\PSPad.exe '. $full_path_to_file);

Självklart måste du ange rätt sökväg till programmet. Pathen till filen måste troligen konverteras till Windows-format. Ev. fungerar exec som så att kommandot måste avslutas innan sidan slutar ladda, vilket skulle kunna betyda att editorn stängs om du stoppar laddningen av sidan. Lägg isåfall till start.exe först i strängen. Det kan också vara så att editorn körs som samma användare som Apache, vlket inte är ditt användarkonto om Apache körs som en tjänst. Kan skapa problem. Vet ej säkert hur man hanterar det.

Jag la in

$file_short=basename($_SERVER["SCRIPT_FILENAME"]);
$file_long=($_SERVER["SCRIPT_FILENAME"]);
echo "<A HREF='file://".$file_long."'>".$file_short."</A><BR>";
echo "<A HREF='".$file_long."'>".$file_long."</A><BR>";
exec('C:\\Program Files (x86)\\PSPad editor\\PSPad.exe '. $file_long);

på sidan.
Att få fram sökvägen synlig på sidan var inte så svårt bara jag tog bort "basename"
mina alternativ blev:

$filename=($_SERVER["SCRIPT_FILENAME"]);	//	C:/wamp/www/php/php_utb/101/10_login.php
$filename=($_SERVER["SCRIPT_NAME"]);		//	/php/php_utb/101/10_login.php
$filename=($_SERVER["DOCUMENT_ROOT"]);	//	C:/wamp/www/
$filename=($_SERVER["HTTP_REFERER"]);	//	http://localhost/php/php_utb/101/10_login.php
$filename=($_SERVER["PHP_SELF"]);		//	/php/php_utb/101/10_login.php
$filename=($_SERVER['REQUEST_URI']); 		//	/php/php_utb/101/10_login.php

Kvar är då det jag vill få gjort:

exec('C:\\Program Files (x86)\\PSPad editor\\PSPad.exe '. $file_long);

Känns som min kompetensnivå ligger strax under detta?

evesveMedlem sedan sep. 2001163 inlägg
#7

OM jag kopierar länkadressen, klistrar in i word och klickar på länken så öppnar sig filen i förutbestämd editor. (PSPad).
Förutsatt att länken är genererad till file:///C:/wamp/www/php/php_utb/101/10_login.php

Det går även att utnyttja

$file_dir=realpath($_SERVER["SCRIPT_DIRNAME"]);
echo "<A HREF='file:///".$file_dir."/'>".$file_dir."</A><BR>";

så mappen öppnas i utforskaren. Även detta via word.

Lite onödigt steg...men det visar ju att länkarna fungerar i grunden.

(Båda varianterna ger en massa varningar från Windows.)

QuidMedlem sedan juni 20006 025 inlägg
#8

Jag förstår inte riktigt vad du vill uppnå?

Kan du inte bara ha filerna du jobbar med öppna i din editor och växla mellan den och webbläsaren?

evesveMedlem sedan sep. 2001163 inlägg
#9

Quid skrev:

Jag förstår inte riktigt vad du vill uppnå?

Kan du inte bara ha filerna du jobbar med öppna i din editor och växla mellan den och webbläsaren?

Självklart kan jag det!
Jag tyckte bara det var en intressant lösning.
Dessutom så slipper man ju bläddrandet om man har filerna på olika ställe.
Jag ligger inte sömnlös om jag inte hittar en enkel lösning..

132 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)