<br /> Code ausblenden im Textfeld

Mahlzeit!
Hab ne ganz simple Frage:
Wie kann ich einen (bräuchte 2) HTML Codes „unsichtbar“ machen?

Es ist so, dass ich ein Textfeld habe, indem Inhalt kommen soll.
Und wenn der Inhalt reinkommt, möchte ich, dass alle
bzw.
Codes nicht angezeigt werden.

Ich dachte so irgendwie:
[php]
if(„
“ || „
“)
{
echo’ ';
}[/php]

Nur ich wüsste nicht was vo den Codes setzen.
Ich dachte so:
[php]
if(echo"
" || echo"
")
{
echo’ ';
}[/php]

Doch dies ging natürlich nicht (was ich auch vermutet hatte).

Dafür sollte [phpnet]str_replace[/phpnet] geeignet sein.

Ich möchte den
bzw.
Code nicht abändern, sondern ich möchte, dass er einfach nicht angezeigt wird.

Dann ersetz ihn doch einfach durch nichts.

[php]$neu = str_replace(„
“, „“, $alt);
$neu = str_replace(„
“, „“, $neu);[/php]

Aber wenn man dann den nicht sehbaren
Code durch nichts ersetzt hat, und dann speichert, dann ist kein
Code eingetragen.

Wie willst du es denn haben? Willst du, dass das
einfach nicht umgesetzt wird, aber im Code steht? Oder soll das als Text angezeigt werden, aber nicht umgesetzt sein? Dafür wäre dann [phpnet]htmlspecialchars[/phpnet]

Dass
nicht angezeigt wird.
Etwa so:

Wird mit   ersetzt (Leerzeichen).
Aber wenn man es abspeichert, dann soll
eingetragen werden, und nicht ein Leerzeichen.

Dies findet in einem Textfeld statt.

Willst du, dass das
einfach nicht umgesetzt wird, aber im Code steht?

Anderst formulaiert:
Willst du, dass das
einfach nicht angezeigt wird, aber im Code steht?

so würde ich es kurz ausdrücken.

Das geht imho nicht. Du kannst ja den Text mit
speichern, aber bevor du den Text auf einer Seite anzeigen lässt entfernst du die Zeilenumbrüche.

Oder du speicherst 2 Versionen ab, einmal mit Zeilenumbruch und einmal ohne.

Das Lösungswort heisst: \n
So wird im Textfeld ein Zeilenumbruch angezeigt. Zum Zurückwandeln empfiehlt sich [phpnet]nl2br[/phpnet].

Das hab ich schon verwendet. nl2br…

Doch es ist so…
Wenn ich abstände mache, dann ist alles okay.
Aber wenn ich den Text erneut aufrufe, und bearbeite, dann sind die
Codes drinn plus die Abstände von vorher.
So wird jedes mal ein
mehr hinzugefügt.

Wenn ich eine Abstand behalten möchte, müsste ich also ale
Codes wegnehmen, damit es bei einem bleibt.

So etwas dachte ich auch.
Doch wie könnte ich so etwas machen?

MfG, matibaski

edit:
So habe mal deine Code ausprobiert Commodore.
Da ich noch nie mit diesem zu tun gehabt habe, konnte ich es nicht richtig machen…
Mein Code, der zwischen und ist, ist so:
[php]
$neu = str_replace(„
“, „“, $pfad.$file);
$neu = str_replace(„
“, „“, $pfad.$file);
if(!isset($_GET[‚file‘]))
{
$_GET[‚file‘] = print „Wähle eine Datei aus.“;
}
switch($_GET[‚file‘])
{
case $file : include($pfad.$file); break;
}
[/php]

Wenn file=datei.php im URL Feld eingefügt ist (mit $_GET) dann wird die Datei eingefügt.
$pfad ist in config.php angegeben.

Ich dachte so:
[php]
$neu = str_replace(„
“, „“, $pfad.$file);
$neu = str_replace(„
“, „“, $pfad.$file);
[/php]

Soweit ich gelesen habe, muss zwischen den ersten „“ das gesuchte sein, zwieschen dne zweiten „“ das, mit dem ersetzt werden soll und an dritter Stelle, von woher er es nehmen soll.

Ich weiss eben nicht, wie ich das anstellen mus… Kann mir jemand meinen Code so schreiben, dass die
und
ersetzt werden?

Ich habs wirklich schon paar mal versucht, jedoch ging es nicht.

MfG, matibaski

wie wärs mit datenbank?

Nils aka XraYSoLo

Wieso datenbank?

  1. Ich sehe keinen Grund,
  2. Ich kenn mich mit Datenbanken nicht aus…

Hast du vielleicht irgendwelche Tuttos oder Einleitungen?

Ich dachte, ich lerne es nach PHP…

MfG, matibaski

am besten lernst du es gemeinsam…

http://tut.php-q.net/

Kann man. Ich komme aber nach wie vor gut mit PHP und ohne MySQL aus. Das läuft dann halt alles über Textdateien ;ugl (Aber ich hab’ mitlerweile ein Tutorial angesehen)

Aber jetzt: Zurück zum Thema.

Genau flapo!
Hast du ne Idee?
str_replace oder preg_replace würde es tun, doch ich weiss nicht wie mit denen umgeghen.
Ich arbeite mit PHP erst seit 2 Monaten… :smiley:

Also: Du schreibst den Text in eine Datei und speicherst sie ab.
Dann liest du mit Hilfe von [phpnet]fopen[/phpnet] und [phpnet]fread[/phpnet] den Inhalt der Datei aus. (Achtung, fread braucht die Dateigrösse mit filesize)
Den Inhalt wird in eine Variable gespeichert, z.B. $text.
Dann ersetzt du alle
oder
mit [phpnet]str_replace[/phpnet]. Bei str_replace gibst du im ersten Parameter an, was gesucht werden soll. Beim zweiten gibst du an, durch was das gesuchte ersetzt werden soll. Im dritten Parameter steht, wo gesucht werden soll.

[php]$filename = „pfad/zur/datei.txt“;
$handle = fopen($filename, „r“); //r steht für read/lesen
$text = fread($handle, filesize($filename));

$text = str_replace(„
“, „“, $text);
$text = str_replace(„
“, „“, $text);
$text = str_replace(„
“, „“, $text); //oder was auch immer…

echo $text;[/php]

Allerdings habe ich noch nicht ganz erkannt, warum du die
's ersetzen willst.

Also es ist so:
Ich habe ein Toll, bei deim man online Inhalte verändern kann.
Es erscheint ein Textfeld, indem eine Datei eingecludet wird.

Diese wird includet, wenn file=datei.php oben im URL Feld steht.
wenn z.B. file=home.php steht, kommt der Inhalt der Datei ins Textfeld.

Wenn man auf Speichern klickt, wird dies zu einer Datei weitergeleitet, die alle Abstände, die mit der Entertaste gemacht werden mit
ersetzt. Der TExt wird natürlich auch geschrieben. Diese Datei wird dann eben geändert.

Der Haken:
Wenn ich die Datei erneut aufrufe, um den Inhalt zu bearbeiten, dann erscheinen alle
Codes. ZUsätzlich sind dann noch die Abstände von vorher.

Das heisst, dass wenn ich etwas zum 2. mal speichere, kommt ein
mehr hinzu. Bei jedem mal immer eins mehr.
Also müsste ich bevor ich es zum 2. mal geändert habe, alle
Codes entfernen, dass nur einer geschrieben wird. In der Datei, die die Inhalte schreibt, habe ich schon nl2br verwendet.

Diese macht aus allen \n ein
, wie du vielleicht schon weisst.

Anstatt alle
zu entfernen, bevor ich sie zum 2. oder x. mal speichere, dachte ich, man könnte es so machen, dass alle
Codes nicht eingeschrieben werden, wenn ich eine Datei bearbeite.

Momentan sieht mein Code, beim Aufrufen so aus:
[php]<?php if(!isset($_GET['file'])) { $_GET['file'] = print "Wähle eine Datei aus."; } switch($_GET['file']) { case $file : include($pfad.$file); break; } ?>[/php]$file wurde hier bestimmt:
[php]
include"config.php";
if(!isset($file))
{
echo’ Wähle aus, welche Datei du bearbeiten möchtest.

';
if ($handle = opendir($pfad))
{
while (false !== ($file = readdir($handle))) {
if ($file != „.“ && $file != „…“) {
echo „-<a href=admin.php?site=content_bearbeiten&file=$file>$file
\n“;
}
}
closedir($handle);
}

}[/php]Dieser Code erstellt eine Liste, von Dateien die in einem bestimmten Ordner ist.
Wenn man auf eine Datei klickt, dann ruft man im URL Feld die Datei auf mit file=ausgewaehltedatei.php

Der Pfad wurde in config.php geschrieben, die eingecludet ist in der Datei.

in der Config siehts so aus:
[php]
$pfad = „…/pfad/der/inhalte/“;[/php]Und nun möchte ich wissen, wie ich meinen momentanen Code so ändern kann, dass alle
nicht angezeigt werden.

Dieser hier:
[php]

<?php if(!isset($_GET['file'])) { $_GET['file'] = print "Wähle eine Datei aus."; } switch($_GET['file']) { case $file : include($pfad.$file); break; } ?>[/php]MfG, matibaski

Ich hoffe jetzt weisst du, wieso ich alle
ausblenden möchte.

MfG, matibaski

PS:
Hier ist der Code, der den Inhalt schreibt. Dort ist auch nl2br drin.
[php]

<?php include"config.php"; $filename = $pfad.$_REQUEST['dataid']; // Dateiname wird bestimmt $somecontent = nl2br($_REQUEST['text']); // Inhalt wird übernommen //Prüfen ob sich in das Verzeichnis schreiben lässt if(!is_writable($pfad)) { die (" Kann nicht ins verzeichnis $pfad schreiben! Bitte prüfen, ob der CHMOD der Ordner (../deineinhalte/) den CHMOD von 777 hat."); } if(!$handle = fopen($filename,"w+")) { die (" Kann Datei {$filename} nicht bearbeiten! Bitte prüfen, ob der CHMOD der Dateien auf 777 gestellt ist."); } else { fwrite($handle, $somecontent); fclose($handle); echo "Datei $filename wurde erfolgreich bearbeitet

Zurück

Vorschau:

$somecontent"; } ?> [/php]

Ich denke du kommst nun draus…

Habe gedacht, ich lasse mal den oberen Teil für flapo, damit er sieht wieso ich
ersetzten will.

Ich habs so gemacht:
[php]
$include = $pfad.$_GET[‚file‘];
if(!isset($_GET[‚file‘]))
{
print"Wähle eine Datei aus!";
}
$filename = $include;
$handle = fopen($filename, „r“); //r steht für read/lesen
$text = fread($handle, filesize($filename));

$text = str_replace(„
“, „“, $text);
$text = str_replace(„
“, „“, $text);
$text = str_replace(„
“, „“, $text); //oder was auch immer…

echo $text; [/php]

Ich hab’ mir den ellenlangen Post durchgelesen und habe so grob verstanden, um was es geht.

Aber mal eine Frage: Warum speicherst du die
's in die Datei? Du kannst nachdem du die Datei ausgelesen hast, mit nl2br alle \n durch
ersetzen.