Beiträge von Robert_Wien

    Ich würde gerne für einen einfachen Code-Converter mit preg_replace() diese Umwandlung machen: z.B. sollte

    Zitat

    public void main() {
    printf("Test");
    }

    zu

    Zitat

    printf("Test");

    umgewandelt werden.

    Ich möchte nur das "public void main() {" und das "}" am Ende löschen. Der Rest soll eh gleich bleiben.

    Es würde eh gut funktionieren, allerdings erkennt das preg_replace() nach meinem Suchmuster keine Newlines, sodass keine Ersetzung durchgeführt wird, wenn die Main-Funktion nicht auf einer einzigen Zeile steht.

    Momentan habe ich diesen php-Code:


    Die Daten (das Programm), das umgewandelt werden soll, werden aus diesem Formular gesendet:


    Ich habe auch schon versucht, den Code, der die Newlines in Breaks umwandelt und danach die Breaks löscht, vor dem preg_replace() zu setzen, aber da funktioniert die Umwandlung leider auch nicht, obwohl die Breaks eigentlich gelöscht sein sollten.

    Ich habe auch probiert, statt .* ein \n zu verwenden, um zunächst einmal das Suchmuster zu erkennen, wo sich zwischen "{" und "}" nur Zeilenumbrüche befinden, aber das funktioniert leider auch nicht.

    Wie kann ich das Suchmuster am besten angeben, damit die Umwandlung auch dann funktioniert, wenn sich die main-Funktion auf mehreren Zeilen erstreckt? Ist es mit preg_replace() eh möglich, ein Suchmuster zu erkennen, das sich über mehrere Zeilen erstreckt?

    Im Voraus vielen Dank für Eure Hilfe!

    Viele Grüsse,

    Robert

    Ich habe momentan ein kurzes php-File, das im oberen textarea eine HTML-Eingabe entgegennehmen kann und beim Klick auf "Programm ausführen" soll der HTML-Code im unteren Fenster ausgewertet werden.

    Dies funktioniert jetzt eh recht gut, allerdings wird vor jedem Anführungszeichen und Hochkomme immer ein Backslash eingefügt, was ich aber gerne unterbinden wollte...

    (Ich habe dieses Problem eh auch im Tread "Inhalt des html-textarea in eine Datei schreiben" beschrieben, aber weil dieses Problem jetzt nichts mehr mit einer Textdatei zutun hat, habe ich es in einen neuen Tread geschrieben.)

    Wenn ich ins obere Fenster eingebe:

    <html><head>xyz
    </head><body>"Test"</body></html>

    dann erscheint im unteren Fenster:

    xyz
    \"Test\"

    Mein php-Code sieht momentan folgendermaßen aus:

    [php:1:36066bf36a]<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>C-Interpreter</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

    <script language="JavaScript">

    function testausgabe()
    {
    alert (document.getElementById("xyz").value);
    }

    </script>

    </head>

    <body>
    <?PHP
    if ( isset($_GET['iframe']) )
    {

    // $Ausgabe =
    // "<html><body><script language=JavaScript>" . $_POST['mein_html'] . "</script></body></html>";

    echo $mein_html;

    }
    else
    {
    ?>
    <script src="http://www.space4free.de/bannerrotation…ow=13&sac_java="></script>
    <script src="http://www.space4free.de/bannerrotation…ow=14&sac_java="></script>


    Dein erstes Programm...


    In das obere Eingabefenster kannst Du ein paar C-Befehle hinein-

    schreiben, die Du soeben gelernt hast.

    Klicke dann auf die Schaltfläche "Programm ausführen" und schon

    siehst Du im unteren Ausgabefenster das Ergebnis Deines Programms.


    <form name="form1" method="post" action="<?PHP echo $_SERVER[PHP_SELF]; ?>?iframe=yes" target="myframe">

    Dein C-Programm:

    <textarea name="mein_html" id="xyz" cols="60" rows="10" wrap="soft"></textarea>
    </p>
    <input type="submit" name="Submit" value="Programm ausführen">
    </form>


    Ausgabe Deines C-Programms:
    <iframe name="myframe" width="500" height="200" src="">Fehler: Ihr Browser nimmt keinen Frames!</iframe></p>
    <br \>

    Testausgabe

    <?PHP } ?>


    </body>
    </html>[/php:1:36066bf36a]

    Was kann man am Code ändern, damit das Anführungszeichen und Hochkomma richtig übertragen wird? (Ohne vorangestellten Backslash.)

    Im Voraus vielen Dank für Eure Hilfe!

    Viele Grüße

    Robert

    Ich bin dem Fehler jetzt schon auf der Spur, aber eine Lösung habe ich trotzdem noch nicht.

    Ich habe den oberen Teil des php-Codes wieder so geändert (wie es am Anfang war):

    Jetzt soll wider (wie am Anfang) der HTML-Code des oberen Fensters im unteren Fenster "ausgeführt" werden.

    Dabei ist mir jetzt folgendes aufgefallen:

    Wenn ich ins obere Fenster "document.write('Hallo');" schreibe, dann erscheint im unteren Fenster allerdings "document.write(\'Hallo\');" !

    Gibt es eine Möglichkeit, dass der Backslash vor Anführungszeichen oder Hochkomma nicht automatisch eingefügt wird? Und warum wird der Backslash eigentlich eingefügt?

    Denn durch den Backslash kann das JavaScript natürlich nicht funktionieren, weil "document.write(\'Hallo\');" natürlich nicht ausgewertet werden kann.

    Viele Grüße

    Robert

    Ich habe mir jetzt einen Webspace auf http://www.space4free.de eingerichtet und die php-Datei dort hochgeladen und es funktioniert! Den Code möchte ich insoforn erweitern, dass man in das Textarea JavaScript eingeben kann (dann im nächsten Schritt soll es auch mit C-Code funktionieren - wegen printf(), usw.), der im unteren Fenster automatisch ausgeführt wird. Ich habe den php-Code schon erweitert, allerdings scheint noch ein Fehler drinnen zu sein...

    Dies ist mein aktueller php-Code:
    (Den php-Teil für das Speichern der Textdatei habe ich wieder entfernt, weil es mit dem Preview-Button eh auch funktioniert hat und die Datei beim Klick auf "Speichern" nicht auf den Server geschrieben wurde. Vielleicht waren die Schreibrechte für "Textdatei.txt" (am Server) nicht gesetzt.)

    Ich glaube, das einzige Problem in diesem Code ist diese Zeile:

    HTML
    $Ausgabe = 
        "<html><body><script language=JavaScript>" . $_POST['mein_html'] . "</script></body></html>";

    (Ich habe es im Programm daneben eh noch erläutert.)

    Wenn ich ins Textarea "mein_html" den JavaScript-Befehl "document.write('Hallo');" eingebe, meldet mir der Browser einen Fehler. Bei der Eingabe von "var i = 10;" meldet der Browser jedoch keinen Fehler.

    Gibt die php-Variable $_POST['mein_html'] eh das Textarea unverändert zurück?

    Eine Frage hätte ich noch: Welche Rolle spielt der php-Code im "<textarea name="mein_html" cols="60" rows="10" wrap="soft"><?PHP echo $_POST['mein_html']; ?></textarea>". Würde "$Ausgabe = ...." und "echo $Ausgabe;" nicht ausreichen, um den html-Code an das iframe zu schicken? (Ich bin im php noch Anfänger.)

    Im Voraus vielen Dank für Eure Hilfe!

    Viele Grüße

    Robert

    Ich habe jetzt von einem Studienkollegen erfahren, dass man auf http://www.curvedspaces.com/ gratis Webspace bekommen kann, wobei dort auch PHP4 unterstützt wird. Laut der Providerbeschreibung ist dies der einzige Provider, der zugleich gratis ist, als auch PHP unterstützt. Ich werde mir morgen das php-File dort hochladen und werde dann posten, ob es ein Erfolg war oder ob es noch Fehler gibt.

    Viele Grüße

    Robert

    Vielen Dank für Eure Codebeispiele.

    Leider funktioniert der letzte Code bei mir auch nicht. Aber das liegt sicher an dem Server, denn ich habe gerade auch ein Beispiel-php-Code aus einem Tutorial gefunden, dass den Text aus einem Textarea im Formular mit echo ausgeben sollte, und dieser Code funktioniert leider auch nicht:

    Wenn ich auf "Text absenden" klicke, erscheint "No valid arguments supplied" (eine Moodle-Meldung) und wenn ich mir die URL der Adresse ansehe, sehe ich "http://www.weissenboeck.com/moodle/file.php/80/<?php%20echo$_SERVER['PHP_SELF'];%20?>"

    Bei php-code (zum Schreiben in einer Datei) lautet die URL des unteren Frames "http://www.weissenboeck.com/moodle/file.php/80/<?=$_SERVER['PHP_SELF']?>?iframe=yes"

    Ich denke, da liegt der Fehler, dass der php-Interpreter, der am Server installiert ist, das nicht richtig verarbeitet?

    Ich habe auch auf funpic.de geschaut, dort habe ich zwar gratis-webspace gefunden, allerdings kann man sich dort keine php-files uploaden. Andere Server (mit php) sind dort leider kostenpflichtig.

    Wisst Ihr, wo man gratis einen php-fähigen webspace bekommen kann? Es würde mir genügen, wenn der webspace nur kurzfristig zu Demozwecken angeboten wird, weil ich das php-script mal testen möchte, um zu sehen, ob es läuft (nachdem ich mit php noch nicht sehr vertraut bin), bevor ich für den webspace zahle.

    Ich habe in Tutorials jetzt über die gesamte Sprachsynatax von php gelesen, allerdings fehlt mir der Zugriff auf das HTML-Dokument und die HTML-Elemente noch komplett, und eine Auflistung aller vordefinierten Objekte, Funktionen und Variablen habe ich auch noch nicht gefunden. Gibt es hierfür einen empfehlenswerten Link zum Nachlesen?

    Im Voraus vielen Dank für Eure Hilfe!

    Viele Grüße

    Robert

    Danke für den Änderungsvorschlag der Zeile '<form name="form1"...'

    Es sieht jetzt schon besser aus als vorhin, aber ein Fehler ist leider immer noch drinnen.

    Wenn ich jetzt auf den Button "testen" oder "speichern" klicke, versucht der Browser jetzt ins untere Fenster eine html hineinzuladen, weil im unteren Fenster die Meldung "Entschuldigung, die angeforderte Datei wurde nicht gefunden." (eine Moodle-Fehlermeldung) erscheint. Vorhin ist dort "No valid arguments supplied" gestanden.

    Mein Browser erkennt in dieser Zeile nicht den php-Code:

    Code
    <textarea name="mein_html" cols="65" rows="20"><?=$_POST['mein_html']?></textarea>

    Wenn ich dieses php-File starte, erscheint im oberen Fenster gleich der Textinhalt "<?=$_POST['mein_html']?>". Der Browser interpretiert das scheinbar als normalen Text. Wie kann ich diese Zeile umschreiben, damit dies als php-Code erkannt wird?

    Ich denke, das ist auch der Grund, dass beim "Speichern"-Button nichts passiert. Wahrscheinlich, weil "fputs($datei, $_POST['mein_html'] );" nicht ausgeführt werden kann, da die Referenz "$_POST['mein_html']" nicht bekannt ist.

    Im Voraus danke für Eure Hilfe!

    Viele Grüße

    Robert

    Vielen Dank für die schnelle Antwort und für das php-Script!

    Leider funktioniert es bei mir nicht. Auf meinem Rechner lokal kann ich sicher eh nicht funktionieren, weil ich kein php installiert habe, aber auf dem Server des Professors (weil ich es für eine LVA der Uni mache) ist php installiert.

    Auf dem Server ist Moodle installiert (da wir in der LVA einen Moodle-Kurs erstellen) und das Moodle selbst läuft auf php. Ich habe die Datei jetzt Vorschau.php genannt und über Moodle unter /files/ hochgeladen und die Datei von dort angeklickt.

    Das obere Fenster, wo man den HTML-Code eingeben kann, ist nach dem Laden der php-Datei nicht leer, sondern es steht dort diese Zeichenfolge: "<?=$_POST['mein_html']?>"

    Das bedeutet wahrscheinlich, dass der Browser dies nicht als php-Code erkennt?

    Wenn ich auf "Testen" klicke, erscheint im unteren Fenster "No valid arguments supplied" - das ist sicher eine Moodle-Standardausgabe, wenn eine Seite nicht geöffnet werden kann. Wenn ich auf "Speichern" klicke, passiert leider nichts. Es sollte ja "Ihre Daten wurden gespeichert!!!!" erscheinen.

    Woran kann es liegen? Das php-Script ist ja sicher korrekt?

    (Ich verwende den Internet Explorer 6.0.)

    Eine Frage habe ich noch: Wenn das php-Script auf dem Server des Professors liegt und mit "$datei = fopen("textdatei.txt", "w+"); " eine Datei geöffnet wird, wird diese Datei auf dem Serverrechner oder auf dem Client (dem Anwender-PC) geöffnet? (Ich habe bis jetzt noch nichts mit php programmiert und gerade erst mit html und javascript begonnen.)

    Nochmals im Voraus vielen Dank.

    Viele Grüße

    Robert

    Hallo Leute,

    ich habe folgende Situation:

    Ich habe auf der Webseite ein Textarea, wo der Benutzer HTML-Code hineinschreiben kann und darunter einen Button "Vorschau". Wenn der Benutzer auf den Button klickt, soll der Inhalt des Textarea (der HTML-Code, den der Benutzer gerade eingegeben hat) in eine htm-Datei geschrieben werden, sodass diese htm-Datei gleich danach in einem Frame unterhalb des Buttons angezeigt werden kann. (Das soll eine HTML-Vorschau-Funktion werden.)

    Das Problem ist, dass ich bis jetzt keine Möglichkeit gefunden habe, mit JavaScript den Inhalt des Textarea (document.getElementById("Textfeld").value) in eine htm-Datei zu schreiben. Wenn dieses Problem gelöst wäre, ist der Rest dann eh einfach.

    Oder gibt es eine andere Möglichkeit, um den Inhalt vom Textarea direkt vom Browser auszuführen?

    Oder lässt sich dieses Problem mit VBSript oder PHP lösen?

    (Eigentlich ist die Funktion, die ich suche, dieselbe, die hier im Forum schon funktioniert. Denn, wenn man nach dem Betrag-verfassen auf "Vorschau" klickt und der Beitrag auch html-Code enthalten darf, passiert eigentlich eh ganau das, was ich auf meiner Webseite möchte.)

    Im Voraus vielen Dank für Eure Hilfe!

    Viele Grüße

    Robert