Hallo
Gerade fange ich an mich mit php-Programmierung zu beschäftigen.
Jetzt würde ich gerne meine erstellten Skripte im Browser editieren.
Gerne einfach so, das der Dateiname per GET an die Editor.php übergeben
wird.
Ja, es gibt solche Systeme auch für ganze Projekte: ICEditior, Cloud9
etc.
Ich möchte es aber gerne viel kleiner, aber gerne mit einem
Code-Highlighting.
Hat jemand von Euch solch ein Skript?
Olaf
Nachtrag:
Das Verzeichnis ist über die htaccess geschützt,
daher habe ich keine Angst, dass mir jemand den Server übernimmt.
Da nimmt man einfach den CKEditor. Und schreibt ein PHP-Script, was eine
Seite mit <script src="ckeditor.js"> und eine gefüllte <textarea>
ausliefert. Nach den Submit schreibt dein PHP-Script die gepostete
Textarea wieder in die Datei.
Danke, das sieht genau so aus,
wie ich es mir vorgestellt hatte!
Nur verstehe ich noch nicht, wie in dem Skript hier:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CKEditor</title>
<script
src="//cdn.ckeditor.com/4.6.1/standard/ckeditor.js"></script>
</head>
<body>
<textarea name="editor1"></textarea>
<script>
CKEDITOR.replace( 'editor1' );
</script>
</body>
</html>
die zu editierende Datei aufgerufen werden soll.
Olaf schrieb:> [Wie] die zu editierende Datei aufgerufen werden soll.Noch einer schrieb:> eine gefüllte <textarea>> ausliefert.
D.h. php schreibt sie in deine textarea, fertig.
Planlos schrieb:> Olaf schrieb:>> [Wie] die zu editierende Datei aufgerufen werden soll.> D.h. php schreibt sie in deine textarea, fertig.
Die Frage zielte vermutlich eher darauf ab, wie der Name/Pfad der zu
editierenden Datei angegeben werden kann.
Ansonsten: Eine ganz ähnliche Frage wurde hier vor zwei Wochen schon mal
gestellt (Beitrag "Webserver Zugriff auf Dateien, wie programmieren").
In diesem Thread habe ich auch mal ein ganz einfaches PHP-Script zu
diesem Zweck gepostet:
https://www.mikrocontroller.net/attachment/312124/edit_file.php
Dieses Script würde mit einer kleinen Änderung auch Deinen Zweck
erfüllen. Passend zur Frage des damaligen Threads ist der Dateiname der
zu editierenden Datei in diesem Script festgelegt; um damit jede
beliebige Datei zu editieren, sollte es eigentlich genügen, die erste
Zeile entsprechend zu ändern, dass statt eines festen Dateinamens ein
HTTP GET-Parameter extrahiert wird.
Da das verlinkte Script aber eh minimalistisch ist und keinerlei
Syntax-Highlighting o.Ä. beherrscht, ist es aber im Endeffekt vermutlich
doch sinnvoller, auf eine komplexe und beliebte Lösung zurückzugreifen,
wie es dieser CKeditor offenbar ist.
Hallo Joachim
Danke für den Hinweis auf den bestehenden Thread.
Das Skript macht zwar das was ich möchte
und auch die Möglichkeit den Dateinamen über die URL anzugeben habe ich
verwirklichen können, (Danke für den Hinweis, damit war es dann echt
nicht mehr schwer),
nur wird bei der zu editierenden Datei immer \ vor die " gesetzt.
Und zwar jedes Mal, sodass es nach dreimaligem Speichern so aussieht:
<html lang=\\\\\\\"de\\\\\\\" dir=\\\\\\\"ltr\\\\\\\">
Wie kann man das Verhindern?
Und ist es möglich das Codehighlighting nachträglich einzubauen?
Olaf schrieb:> nur wird bei der zu editierenden Datei immer \ vor die " gesetzt.> Und zwar jedes Mal, sodass es nach dreimaligem Speichern so aussieht:>> <html lang=\\\\\\\"de\\\\\\\" dir=\\\\\\\"ltr\\\\\\\">>> Wie kann man das Verhindern?
Ich habe leider nicht sonderlich viel Erfahrung mit PHP, das kann ich
mir gerade auch nicht erklären. Bei einem kurzen Test eben konnte ich
dieses Phänomen leider auch nicht reproduzieren, da schien es zu
funktionieren.
Könnte vielleicht mit der Konvertierung Roh-Text <-> HTML-sichere
Zeichen zu tun haben, die im Script durch htmlspecialchars() vorgenommen
wird.
Wobei das auch nicht so recht erklärt, warum das Phänomen bei mir nicht
aufzutreten scheint. Einer kurzen Google-Suche zufolge könnte es evtl.
auch mit einer Einstellung namens "Magic Quotes" zu tun haben. Die
scheint es allerdings auch nur bei älteren PHP-Versionen gegeben zu
haben. (http://php.net/manual/de/security.magicquotes.php)
> Und ist es möglich das Codehighlighting nachträglich einzubauen?
Irgendwie bestimmt, aber die Mühe wird sich für ein derart
minimalistisches Script wohl keiner machen. ;-)
Hallo
Die PHP Version ist 5.5.28
und aus der php-ini folgt folgendes:
magic_quotes_gpc On On
magic_quotes_runtime Off Off
magic_quotes_sybase Off Off
Schlau werde ich da aber auch nicht raus :-(
Olaf schrieb:> magic_quotes_gpc On On
Dann dürfte an dieser Einstellung evtl. das Problem liegen. Wobei ich
das nicht ganz verstehe, denn Du schreibst ja...
> Die PHP Version ist 5.5.28
...und ich hätte folgende Information auf der Info-Seite zu Magic
Quotes:
"Dieses Feature ist seit PHP 5.3.0 DEPRECATED (veraltet) und seit PHP
5.4.0 ENTFERNT."
jetzt so interpretiert, dass es diese ominösen "Magic Quotes" in Deiner
PHP-Version 5.5 eh nicht mehr gibt.
Joachim S. schrieb:>> Die PHP Version ist 5.5.28
Verdammt, Tippfehler.
Da muss 5.3.28 stehen.
Dann passt es auch wieder mit 5.4 ENTFERNT.
Sorry für die Verwirrung.
Hier noch ein Skript,
was etwas umfangreicher aussieht:
https://sourceforge.net/projects/editarea/
Eine eigene Frage?
Dieser Thread ist über 9 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.