<br /> entfernen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
action
anzeigen
ausschneiden
datei
deswegen
eins
entfernt bitte
funktion
lag
mache
mai
speicher
stehen
update
versuch
zeile
zeilenumbruch
-
Hi,
ich hab da ein Problem xD
Ich hab ein script, womit man seiten bearbeiten kann. Das script wandelt beim speichern die \n's in <br />'s um, soweit ist alles OK. Nur beim bearbeiten, wenn schon <br />'s da sind, dann ist der zeilenumbruch noch dahinter, und PHP macht daraus wieder ein <br /> somit hat man zwei zeilenumbr?che. Wie mache ich es, dass PHP vor dem anzeigen des textes in der Textarea die <br />'s entfernt?
Bitte so schnell wie m?glich, da ich meine seite am 1.Mai fertig haben muss^^"
-> Vercetti -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
du wandelst nicht vor dem speichern alle \n in <br \>`s um, sondern erst wenn sie ausgegeben werden
-
du wandelst nicht vor dem speichern alle \n in <br \>`s um, sondern erst wenn sie ausgegeben werden
doch tu ich, ich geb dir mal den ausschnitt des editier dingsdas:
[php]
<?php
if ($_GET['action'] == "edit") {
$file = $_GET['file'];
$filen = $_GET['filen'];
$fp = fopen($file,"r");
$get = fread($fp, filesize($file));
$text_zeig = preg_replace ('<br />',' ',$get);
?>
<form method="POST" action="index.php?section=admin&b=<? echo $_GET['b'];?>&was=cms&action=update&<?php echo $sidu;?>">
<div width="72%">
<b>?berschrift:</b> <? echo $filen;?> <br>
<b>Text:</b> <textarea rows="25" name="text" cols="70"><? echo $text_zeig;?></textarea><br>
<input type="submit" value="?ndern" name="los">
<input type="hidden" name="file" value="<? echo $_GET['file'];?>">
<input type="hidden" name="filen" value="<? echo $_GET['filen'];?>">
</div>
</form>
<?
fclose($fp);
}
if ($_GET['action'] == "update") {
$file = $_POST['file'];
$filen = $_POST['filen'];
$fp = fopen($file,"w");
$text0 = $_POST['text'];
$text1 = nl2br($text0);
$text = stripslashes($text1);
fwrite($fp,$text);
fclose($fp);
echo $filen;
echo " ge?ndert!";
?>
<a href="index.php?section=site_open&site=<? echo $file;?>&sitename=<? echo $siten;?>">zur?ck zu/m <? echo $siten;?></a>
<?
}
?>
[/php]
nur beim speichern schreibt der die <br />'s. Beim Ausgben l?dt der die wieder in die textarea, und macht beim speichern noch eins dahinter wegen dem Zeilenumbruch... -
Schreib das hier:
<?php
if ($_GET['action'] == "edit") {
$file = $_GET['file'];
$filen = $_GET['filen'];
$fp = fopen($file,"r");
$get = fread($fp, filesize($file));
$text_zeig = preg_replace ('<br />',' ',$get);
?>
<form method="POST" action="index.php?section=admin&b=<? echo $_GET['b'];?>&was=cms&action=update&<?php echo $sidu;?>">
<div width="72%">
<b>?berschrift:</b> <? echo $filen;?> <br>
<b>Text:</b> <textarea rows="25" name="text" cols="70"><? echo $text_zeig;?></textarea><br>
<input type="submit" value="?ndern" name="los">
<input type="hidden" name="file" value="<? echo $_GET['file'];?>">
<input type="hidden" name="filen" value="<? echo $_GET['filen'];?>">
</div>
</form>
<?
fclose($fp);
}
if ($_GET['action'] == "update") {
$file = $_POST['file'];
$filen = $_POST['filen'];
$fp = fopen($file,"w");
$text0 = $_POST['text'];
$text = stripslashes($text1);
fwrite($fp,$text);
fclose($fp);
echo $filen;
echo " ge?ndert!";
?>
<a href="index.php?section=site_open&site=<? echo $file;?>&sitename=<? echo $siten;?>">zur?ck zu/m <? echo $siten;?></a>
<?
}
?>
Es lag an der Funktion nl2br().
H2O -
Nur wenn jetzt ein User der kein HTML benutzt den Text ?ndern will, und der einen zeilenumbruch machen will, geht das ja nicht mehr, weil nl2br() hat ja die br's gemacht, damit's die User es nicht m?ssen.... Deswegen sollten beim bearbeiten die <br />s automatisch entfernt werden... Ich hab die br's zwar weggekrigt, aaaaaber es kommt ein < > wo ein BR war
-
versuchs mal so:
str_replace ( '<br />', "\n", $string);
str_replace ( '<br>', "\n", $string);
Wichtig sind die doppelten Anf?hrungszeichen f?r den \n -
THX derturbohummel, tut soweit alles, aber da ja in der Datei das z.B. so aussieht:
ZEILE eins <br />
Zeile zwei <br/>
Da sind nach dem <br /> noch Zeilenumbr?che, deswegen soll das <br /> beim editieren ja entfernt werden, damit danach nicht zwei st?ck da stehen, so wie ich es aber jetzt habe, entfernt der das <br /> nicht, sondern ersetzt es durch noch einen Zeilenumbruch ... -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage