Zeilenumbruch erzwingen

Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

jsnlynn

Grünschnabel
Hallo, ich benutze den ace Editor und da brauchte ich ein bisschen Hilfe.
Mein Problem ist, dass wenn die Datei gespeichert wird, dass kein Zeilenumbruch da ist.
Heisst, ich schreib in den Editor:
Code:
Test
Test
Test
Und gespeichert wird
Code:
TestTestTest

Hier ist mein Code.

Code:
<?php
    if(isset($_POST['submitEdit']))
    {
        $pID = $_POST['hid'];
        $pFile = $_POST['hfile'];
        $pServerName = $_POST['hservername'];

        $pText = nl2br($_POST['newtext']);

        unlink($pFile);

        $handler = fopen($pFile, "w");
        fwrite($handler, $pText);
        fclose($handler);

        echo "
        <br><center><div style='width: 500px' class='alert alert-success'>
        Du hast diese Datei erfolgreich editiert.<br>
                          ID: " . $pID . "<br>
                          Servername: " . $pText . "<br>
        </div></center>";
        #echo '<meta http-equiv="refresh" content="2; URL=?site=scripts">';
    }

        echo '<form action="?site=' . __encrypt("wscripts") . '" method="post" id="myForm">';
            echo '<input name="newtext" type="text" hidden id="editortext">';
            echo '<div id="editor" style="height: 700px; width: 100%;">';
                echo $daten;
            echo '</div>';
            // echo '<div style="text-align: left;">
            //         <textarea class="form-control"  rows="30" name="text">' . $daten . '</textarea>
            //      </div><br>';
            echo '<br><center>
                    <input type="hidden" value="' . $rID . '" name="hid">
                    <input type="hidden" value="' . $rServerName . '" name="hservername">
                    <input type="hidden" value="' . $rFile . '" name="hfile">
                    <input class="btn btn-lg btn-success btn-block text-uppercase" type="submit" name="submitEdit" value="Speichern" style="width: 400px;">
                 </center><br>';
        echo '</form>';
        ?>


<script src="ace-builds/src-noconflict/ace.js" type="text/javascript" charset="utf-8"></script>
<script>
    var editor = ace.edit("editor");
    editor.setTheme("ace/theme/twilight");
    editor.session.setMode("ace/mode/lua");
    document.getElementById('editor').style.fontSize = '1vw';

    document.getElementById("myForm").onsubmit = function(evt) {
      document.getElementById("editortext").value = editor.getValue();
    }
</script>
 

Yaslaw

n/a
Moderator
Schon mal ausprobiert: ACE Editor Line Endings Set To Windows Format
Code:
use editor.session.setNewLineMode("windows")

Oder ev. beim speichern anpassen. file_put_contents anstelle dem ganzen fOpen etc.
PHP:
file_put_contents($pFile, $pText);

Hast du auch mal den Inhalt von $_POST['newtext'] mit dem Debugger angeschaut?
 
Zuletzt bearbeitet:

jsnlynn

Grünschnabel
Hast du auch mal den Inhalt von $_POST['newtext'] mit dem Debugger angeschaut?
Ja hab ich schon, da steht dann auch "TestTestTest"

Ich meine das hat irgendwas mit dem Java Code zu tun, weil wenn ich manuel im FTP was reinschreibe wie ich es eigentlich will, öffnet er es im Editor auch so wie ich will. Nur wenn er es in input übergeben soll, macht er es ohne Zeilenumbruch
 

Yaslaw

n/a
Moderator
Nicht mit Java. Wenn dann mit JavaScript. Das ist nicht das gleiche.

Bin grad in HTML nicht mehr so sattelfest. Aber du schreibst den Wert vor dem Speichern in ein INPUT. Versuche es mal für 'editortext' mit einer TEXTAREA. TEXTAREA ist für Texte auf mehreren Zeilen.
Du kannst diese dann über CSS verstecken.
 

Jay15249

Grünschnabel
Wenn du ein Leerzeichen machen willst schreib einfach zwischen die Wörter
&nbsp;
dann sollte ein Leerzeichen erscheinen. Man kann wenn man mehr Leerzeichen haben will auch mehrmals %nbsp;
schreiben.
Dies sollte in Html funktionieren.
Ich hoffe ich konnte helfen.
 
Status
Dieses Thema wurde gelöst! Zur Lösung gehen…