PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : HIlfe aller Art benötigt!


Bound_One
21.10.2002, 14:46:38
Hallo,

ich möchte folgendes realiesieren:
Es soll ein Text in einem Formularfenster eingegeben, bearbeitet werden können. Dieser Text soll dann durch anklicken eines Buttons formatiert werden können (z.B. Fett; Link; Überschrift usw.). Beim Speichern des Textes in eine Datei, soll dieser Text dann automatisch in HTML gewandelt werden.

Wie fange ich an bzw. wie mache ich das ganze?

mad-boy
23.10.2002, 13:45:24
mmm... das sind jetzt ein bischen viele Sachen auf einmal! :)
Also wie du sachen aus einer Textdatei editiren kannst, kann ich dir nicht sagen!
Ich nehme mal an, du willst, dass alle Leute die was in das Formularfeld eingeben das ganze in ein und der selben Textdatei speichern?!?
Wie das mit dem klicken geht, kann ich dir leider auch nicht sagen, das is JavaScript, ich kann dir nur sagen, wie du den BBCode dann nachher umwandelst!

Die Datei die das alles erledigt könnte dann so aussehen:


<?php

function bbcode($wert1) {

$this[] = "/</si";
$this[] = "/>/si";
$this[] = "/
/";
$this[] = "/(.*?)/si";
$this[] = "/(.*?)/si";
$this[] = "/(.*?)/si";
$this[] = "/(.*?)/si";
$this[] = "/(.*?)/si";
$this[] = "/(.*?)/si";
$this[] = "/(.*?)/si";
$this[] = "/(.*?)/si";
$this[] = "/(.*?)/si";
$this[] = "/(.*?)/si";

$repl[] = "&lt;";
$repl[] = "&gt;";
$repl[] = "<BR>";
$repl[] = "<a href="1" target="_blank">1</a>";
$repl[] = "<a href="1" target="_blank">2</a>";
$repl[] = "<b>1</b>";
$repl[] = "<u>1</u>";
$repl[] = "<i>1</i>";
$repl[] = "<table border=0 cellpadding=0 cellspacing=0><tr><td width=20>&nbsp;</td><td bgcolor="#000000"><table border=0 cellpadding=5 cellspacing=1><tr><td bgcolor="#EEEEFF"><code><B>Code:</B><BR>1</code></td></tr></table></td></tr></table>";
$repl[] = "<table border=0 cellpadding=0 cellspacing=0><tr><td width=20>&nbsp;</td><td bgcolor="#000000"><table border=0 cellpadding=5 cellspacing=1><tr><td bgcolor="#EEEECC"><code><B>Zitat:</B><BR>1</code></td></tr></table></td></tr></table>";
$repl[] = "<font color="1">2</font>";
$repl[] = "<font size="1">2</font>";
$repl[] = "<img src="1" border=0>";

$count_this = count($this);
$count_repl = count($repl);
$i=0;
while($i<$count_this) {
$wert1 = preg_replace($this[$i],$repl[$i],$wert1);
$i++;
}
return $wert1;
}

if ($add AND $add==1) {
$file = fopen('info.txt','a');
$text = bbcode($text);
$text .= "n";
fputs($file,$text);
fclose($file);
echo "Die Daten wurden hinzugefügt!";
$text="";
$add="";
exit;
}
?>
<form action="<?php echo $PHP_SELF; ?>" method=post>
<textarea name="text" rows=20 cols=40></textarea>
<input type=hidden name=add value=1>
<input type=submit name="hinzufügen" value="hinzufügen">
</form>


So sollte das funtionieren!

Bound_One
23.10.2002, 13:54:10
Danke, das ist ja schon mal ein Anfang!

MiH
23.10.2002, 14:34:19
wenn du die arrays anders schreibst brauchst du die while schleife nicht.


$search = array("|(.*)|i","|(.*)|i");
$replace = array("<a href="1">1</a>","<img src="1" />";
preg_replace($search,$replace,$str);

geht dann einfach besser udn sieht auch besser aus.

mad-boy
23.10.2002, 15:32:13
öhm... die braucht man so eigendlich auch nicht, fällt mir gerade auf! Das Array is genau das gleiche! :)

MiH
23.10.2002, 15:35:22
ja der array ist der gleiche aber du sparst tipparbeit und somit auch speicherplatz. die datei ist am ende kleiner als deine version. weil eben array[] nicht ständig wiederholt wird!

mad-boy
23.10.2002, 15:42:48
Aber wenn das alles hintereinander steht verliert man total den Durchblick! :)

MiH
23.10.2002, 19:06:56
dann schreibs halt untereinander. ist doch egal. :)