textarea leerraum am Anfang

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

EuroCent

Klappstuhl 2.0
Hallo zusammen,

ich habe folgendes Phänomen:
In einem Textarea lasse Ich Quellcode anzeigen:
Allerdings habe Ich in der ersten Zeile einen Leerraum von ca. 32 Zeichen.
Sie sind aber in der Datei gar nicht vorhanden.

Beispiel wie es in der Datei aussieht:
PHP:
<?php
    $test = "Hallo Welt";
    echo $test;
?>

In der Textarea sieht es dann so aus:
PHP:
                                <?php
    $test = "Hallo Welt";
    echo $test;
?>

Ich habe es schon getrimmt.

PHP:
<?php
if (file_exists($this->pagesPath."/".strtolower($filename) . ".php")) :
    $filename = $this->pagesPath."/".strtolower($filename) . ".php";
    if(false !== ($handle = fopen($filename, "r"))) :
        return trim(htmlspecialchars(file_get_contents($filename)));
    else:
        return "ERROR";
    endif;
endif;
?>

Weiß hier jemand die Lösung?
Liegt es eventuell am "htmlspecialchars"?
 
Könntest du vielleicht mal testbares Ergebnis erzeugen , bzw. ein Code.

Du willst den ersten Code ja als Quellcode im Textarea anzeigen lassen.
Ich sehe aber nicht, wie du den da einsetzt.
Wenn ich den Quellcode einfach über ein echo da einsetzte, geht es ja
PHP tester online

Deswegen wäre vielleicht gut zu wissen wie du es genau machst, oder ich verstehe wieder was falsch
 
Zuletzt bearbeitet:
Schau mal hier, so sieht es bei mir in der Textarea aus:
1663513062417.png

So sieht der Inhalt der Datei aus:
1663513090198.png

Und hier ist der Code zum Lesen der Datei:
PHP:
<?php
        public function readFile(string $filename): string {
            if (file_exists($this->pagesPath."/".strtolower($filename) . ".php")) :
                $filename = $this->pagesPath."/".strtolower($filename) . ".php";
                if(false !== ($handle = fopen($filename, "r"))) :
                    return trim(htmlspecialchars(file_get_contents($filename)));
                else:
                    return "ERROR";
                endif;
            endif;

            return "ERROR";
        }
?>

Zusätzlich sehe Ich auch dass er jetzt am Ende auch ca. 32 Leerzeichen in die Textarea setzt. oO

CSS Code:
CSS:
.page-content {
    background: var(--dark-blue);
    color: var(--white);
    min-height: 450px;
    max-height: 700px;
    width: 100%;
    min-width: 500px;
}

.page-content,
#lineCounter {
    font-family: lucida console, courier new, courier, monospace;
    margin: 0;
    padding: 10px 0;
    height: 70vh;
    border-radius: 0;
    resize: none;
    font-size: 16px;
    line-height: 1.2;
    outline: none;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
}

#lineCounter:focus-visible,
.page-content:focus-visible {
    outline: none;
}

#lineCounter {
    display: flex;
    overflow-y: hidden;
    text-align: right;
    box-shadow: none;
    position: absolute;
    width: 6rem;
    /* Determine appearance of line counter */
    background-color: var(--blue);
    border-color: var(--blue);
    color: var(--white);
}

.page-content {
    padding-left: calc(6rem + 5px);
    width: 100%;
    background-color: var(--dark-blue);
    border-color: var(--dark-blue);
    color: var(--white);
}
 
Ich kann das mit diesem einfachen Beispiel nicht nachvollziehen:
PHP:
<?php
  $data = trim(htmlspecialchars(file_get_contents("test.php")));
?>
<!DOCTYPE html>
<html lang="de">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Test</title>
  </head>
  <body>
  <form action="" method="post">
    <textarea name="text" rows="25" cols="50"><?php echo $data; ?></textarea>
  </body>
</html>
 
Ich kann das mit diesem einfachen Beispiel nicht nachvollziehen:
PHP:
<?php
  $data = trim(htmlspecialchars(file_get_contents("test.php")));
?>
<!DOCTYPE html>
<html lang="de">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Test</title>
  </head>
  <body>
  <form action="" method="post">
    <textarea name="text" rows="25" cols="50"><?php echo $data; ?></textarea>
  </body>
</html>
Hmm... das ist dann komisch.

Wie gesagt, wenn Ich die Datei bei mir in die Textarea lade, dann bekomme Ich diese Leerzeichen davor und danach... keine Ahnung wieso...

Mit dem CSS kann es auh nicht zusammen hängen, da Ich es auch mal ohne gemacht habe.

Kann es am Server selbst liegen?
Falls ja, wo müsste ICh ggf. schauen? :)
 
wie kommt der code den in den Textarea rein ?
Ich hatte es so gemacht
HTML:
<textarea><?php
echo '
<?php
    $test = "Hallo Welt";
    echo $test;
?>'; ?>
</textarea>
@m.scatello so
HTML:
<textarea name="text" rows="25" cols="50"><?php echo $data; ?></textarea>

Nur bei dir sehe ich das nicht, wie du ihn da einsetzt. Dann könnte man das mal selber testen, ob da irgendwo ein Problem ist
 
Ich sehe gerade auf dem Bild das es doch kein reines textarea ist , ist das zufällig ein Highlighter wie ace oder so was?

Weil bei ace hatte ich dasselbe Problem gehabt .
 
Ich sehe gerade auf dem Bild das es doch kein reines textarea ist , ist das zufällig ein Highlighter wie ace oder so was?

Weil bei ace hatte ich dasselbe Problem gehabt .

Nein das sind am ende 2 textarea, der eine gibt nur die Zeilen Nummer wieder, im weiteren ist der Code :)
Und wie du oben im Code erkennen kannst, sind es reine Textareas :)
 
Nein das sind am ende 2 textarea, der eine gibt nur die Zeilen Nummer wieder, im weiteren ist der Code :)
Und wie du oben im Code erkennen kannst, sind es reine Textareas :)
Das ist mein Problem. Ich sehe in deinen Beiträgen nur PHP Code, und nirgends wo ein <textarea> Element.
Ich weiß immer noch nicht, wie der Code in den <textarea> Element eingefügt wird.

Wahrscheinlich ist mein Browser Schrott und zeigt nur die Hälfte an , oder ich werde blind.

Hast du mal überlegt, einen Highlighter zu benutzen?
Oder den eingebauten Highlighter von PHP zu benutzen?

Oder soll der Code editierbar sein, um ihn zu ändern und neu zu speichern?
Das wäre aber auch mit Highlighter kein Problem
 
Status
Dieses Thema wurde gelöst! Zur Lösung gehen…
Zurück