Suche simplen PHP Editor

Fragen zu allen anderen Programmiersprachen.
Benutzeravatar
Rob
Shadow Admin
Beiträge: 258
Registriert: 26.08.2004 01:39
Kontaktdaten:

Beitrag von Rob »

Ich benutze HTML-Kit. Hat praktisch alles was man zum HTML/CSS/PHP etc. entwickeln braucht. Du kannst deinen lokalen Server angeben und somit die Ausgaben der PHP-Scripte im HTML-Kit Preview Fenster anzeigen lassen (Anleitung).
Wenn du den Cursor über einem PHP-Befehl hast und F1 drückst, kommst du sofort zur entsprechenden Hilfeseite auf php.net (im internen Browser).

Und wenn du dir das Mozilla ActiveX-Control runterlädst, kannst du deine Seiten intern auch mit der Gecko Engine 'previewen', auch im Splitscreen mit IE und Gecko nebeneinander. Sehr praktisch :) (mehr dazu)
Build a man a fire and he's warm for a day. Set a man on fire and he's warm for the rest of his life
Benutzeravatar
benny
Beiträge: 383
Registriert: 29.08.2004 09:18
Wohnort: Am Ende des www's
Kontaktdaten:

Beitrag von benny »

Vielleicht gefällt Dir auch der hier :

http://www.weaverslave.ws/index.39.htm
So long,
benny!
.
nur t0te f1sche schw1mmen m1t dem str0m - 00100 !
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Wenn du meine SyntaxHighlightingLib hast:

Code: Alles auswählen

OnErrorGoto(?ERROR)

Enumeration
  #FILE_NEW
  #FILE_OPEN
  #FILE_SAVEAS
  #FILE_SAVE
  #FILE_PREF
  #FILE_QUIT
  
  #EDIT_COPY
  #EDIT_PASTE
  #EDIT_CUT
  #EDIT_FIND
  #EDIT_FINDNEXT
  #EDIT_REPLACE
EndEnumeration

Enumeration
  #EDIT
  #FUNC
  #HELPFUNC
EndEnumeration

NewList Func.s()

Procedure SortFunctions()
  n = 0
  ResetList(Func())
  While NextElement(Func())
    v = Len(Func())
    e = ListIndex(Func())
    k.s = Func()
    
    m = 0
    While NextElement(Func())
      If Len(Func()) > v
        u.s = Func()
        Func() = k
        SelectElement(Func(), e)
        Func() = u
        m = 1
        n = 1
        Break
      EndIf
    Wend
    
    If m = 0
    SelectElement(Func(), e)
    Else
    SelectElement(Func(), e-1)
    EndIf
  Wend
  ProcedureReturn n
EndProcedure

Procedure.l GetFieldIndex(String.s, Position, Separator.s)
  m = 1
  For x=1 To Position
    If Mid(String, x, Len(Separator)) = Separator
      m + 1
    EndIf
  Next
  ProcedureReturn m
EndProcedure

; Procedure.s GetPHPVariables(Text.s, Separator.s)
;   Shared Result.s
;   Start = FindString(Text, "$", 1)
;   While Start <> 0
;     c.s = ""
;     For k=Start+1 To Len(Text)-1
;       b = PeekB(@Text+k-1)
;       If (b > 'a' And b < 'z') Or (b > 'A' And b < 'Z')
;         c + Chr(b)
;       Else
;         Break
;       EndIf
;     Next
;     Result.s + c.s + Separator
;     Start = FindString(Text, "$", Start+1)
;   Wend
;   ProcedureReturn Result
; EndProcedure

If ReadFile(0, "Functions.txt")
  While Eof(0) = 0
    Line.s = ReadString()
    If Trim(Line) <> ""
    AddElement(Func())
    Func() = Line
    EndIf
  Wend
  CloseFile(0)
EndIf
If SortFunctions() = 1
  If CreateFile(0, "Functions.txt")
    ForEach Func()
      WriteStringN(Func())
    Next
    CloseFile(0)
  EndIf
EndIf

#WindowWidth  = 640
#WindowHeight = 480
#WindowFlags  = #PB_Window_SizeGadget | #PB_Window_MaximizeGadget | #PB_Window_MinimizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered | #PB_Window_SystemMenu

hWnd = OpenWindow(0, 0, 0, #WindowWidth, #WindowHeight, #WindowFlags, "PHP-Editor")

CreateMenu(0, hWnd)
MenuTitle("File")
MenuItem(#FILE_NEW      , "New")
MenuItem(#FILE_OPEN     , "Open...")
MenuItem(#FILE_SAVEAS   , "Save as...")
MenuItem(#FILE_SAVE     , "Save")
MenuBar()
MenuItem(#FILE_PREF     , "Preferences")
MenuBar()
MenuItem(#FILE_QUIT     , "Quit")

MenuTitle("Edit")
MenuItem(#EDIT_COPY     , "Copy")
MenuItem(#EDIT_PASTE    , "Paste")
MenuItem(#EDIT_CUT      , "Cut")
MenuBar()
MenuItem(#EDIT_FIND     , "Find")
MenuItem(#EDIT_FINDNEXT , "Find next")
MenuItem(#EDIT_REPLACE  , "Replace")


CreateGadgetList(WindowID())
EditorGadget(#EDIT, 0, 20, WindowWidth(), WindowHeight()-20)
StringGadget(#FUNC, 0, 0, WindowWidth()-20, 20, "", #PB_String_ReadOnly)
ButtonGadget(#HELPFUNC, WindowWidth()-20, 0, 20, 20, "?")

ClearHighlightingAll(#EDIT, RGB(0, 0, 0), 10, "Arial", 0)

Repeat
  Event = WindowEvent()
  
  Select Event
    Case #PB_Event_Gadget
      If EventGadgetID() = #HELPFUNC
        RunProgram("http://de3.php.net/manual/en/function."+GetGadgetText(#FUNC)+".php")
      EndIf
    Case #WM_KEYUP
      wParam = EventwParam()
      CPos.CHARRANGE
      LineNr = SendMessage_(GadgetID(#EDIT), #EM_EXLINEFROMCHAR, 0, CPos\cpMin)
      SendMessage_(GadgetID(#EDIT), #EM_EXGETSEL, 0, CPos)
      Word.s = StringField(GetGadgetText(#EDIT), GetFieldIndex(GetGadgetText(#EDIT), CPos\cpMin, " "), " ")
      ForEach Func()
        If Left(UCase(Func()), Len(Word)) = UCase(Word)
          SetGadgetText(#FUNC, Func())
        EndIf
      Next
      Line.s = GetGadgetItemText(#EDIT, LineNr, 0)
      ClearHighlightingLine(#EDIT, RGB(0, 0, 0), 10, "Arial", 0)
      SyntaxHighlightingLine(#EDIT, "<?php|?>", "|", RGB(0, 0, 0), RGB(255, 255, 0), 10, "Arial", #CFM_BOLD)
      SyntaxHighlightingLine(#EDIT, "$|and|or|if|else|while|wend|swich|case|Break", "|", RGB(0, 0, 0), RGB(255, 255, 255), 10, "Arial", #CFM_BOLD)
      SyntaxHighlightingLine(#EDIT, Chr(34)+"_+_-_*_/_{_}_%_&_|_(_)_!_=_1_2_3_4_5_6_7_8_9_0", "_", RGB(0, 0, 255), RGB(255, 255, 255), 10, "Arial", 0)
      ForEach Func()
        If FindString(Line, Func(), 1)
          SyntaxHighlightingLine(#EDIT, Func(), "", RGB(255, 0, 0), RGB(255, 255, 255), 11, "Arial", #CFM_BOLD)
        EndIf
      Next
    Case #PB_Event_SizeWindow
      ResizeGadget(#EDIT, 0, 20, WindowWidth(), WindowHeight()-20)
      ResizeGadget(#FUNC, 0, 0, WindowWidth()-20, 20)
      ResizeGadget(#HELPFUNC, WindowWidth()-20, 0, 20, 20)
  EndSelect
  Delay(10)
Until Event = #PB_Event_CloseWindow
End

ERROR:
MessageRequester("", Str(GetErrorLineNR()))
Dann brauchst du noch eine Datei "Functions.txt":
http://www.bradan.net/Functions.txt
[EDIT]
Passt hier nicht rein. Achja: Speichern und Laden funktion musst du halt noch einbauen, ich kopier da nur code raus um ihn in HTML Studio weiter zu bearbeiten.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Kooky
Beiträge: 47
Registriert: 18.09.2004 16:13
Wohnort: München
Kontaktdaten:

Beitrag von Kooky »

Danke!
Du hast recht!
Das ist wohlmöglich die beste möglichkeit:
-einfach den Editor selber schreiben :) :wink: <)
mfg. Kooky
Monstalocke
Beiträge: 12
Registriert: 04.01.2005 14:38

Beitrag von Monstalocke »

@bluejoke:Ich bin mir jetzt nicht ganz sicher aber du bist bist doch einer von den skype-freaks ;) schaltmal skype aus und versuch es dann.
@all
ich benutze für html und php und java phase5
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

OMG!

Danke, Danke, Danke!
Ich such schon ewig nach dem Grund /:->
:? jetzt muss ich Skype ausschalten, oder igbts da ne Lösung
Sry für das Offtopic-gebrabsel

@DD: geht dein Syntaxhighlighter in einem normalen EditorGadget, oder ist das irgendwas anderes?

@all: wo gibts denn solche Symbole für die Toolbar?
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

> @all: wo gibts denn solche Symbole für die Toolbar?

z.B. hier: http://www.vbaccelerator.com/home/Resou ... /index.asp

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

Danke!

Ich werd jetzt wohl demnächst irgendeinen Minieditor bauen.
Ich meld mich dann wenn er fertig ist.

Simon
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

@bluejoke: SyntaxHighlightingLib ist fürn EditorGadget.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
Ypser
XMas-Contest-Gewinner '03
Beiträge: 128
Registriert: 29.08.2004 14:35
Computerausstattung: Win7
Wohnort: Ingelheim
Kontaktdaten:

Beitrag von Ypser »

Kann ConText empfehlen, den benutze ich. Syntax-Highlightning für PHP,
Zeilennummern und sonst kein SchnickSchnack. Bestens! :allright:
Bild
Antworten