[SOLVED]Mit php Absätze aus Strings entfernen?
Sokrates 21.03.2004 - 13:43 1780 11
Sokrates
Big d00d
|
Hallo! Ich versuche gerade ein gästebuch in php zu coden... Es funktioniert schon ganz gut nur gibts das Problem, dass bei einer Eingabe mit Absätzen der String diese Absätze beibehält. Das ist insofern blöd weil ich jeden Eintrag in einer einzelnen Zeile speichere und durch die Absätze wird jedes Mal eine neue Zeile angefangen...
Kennt wer eine Funktion die einen String nach Absätzen durchsucht und diese entfernt?
Für andere Lösungsvorschläge bin ich natürlich auch sehr dankbar =)
Tia mfG Sokrates
Bearbeitet von Sokrates am 22.03.2004, 16:32
|
COLOSSUS
AdministratorGNUltra
|
$out=ln2br($in);
|
manalishi
tl;dr
|
findest du es wirklich gut, die zeilenumbrüche zu verwerfen? ich würd mir da als user etwas verarscht vorkommen escapen (\n-->\\n) wäre eine alternative
|
Sokrates
Big d00d
|
Danke für die schnellen Antworten... @ Colossus...mit der funktion nl2br kommt folgende ausgabe: Hugo 123|asda@|sdasda<br />
asd<br />
asd<br />
asd<br />
asd<br />
asdas<br />
dasd<br />
asd<br />
|21-March-2004 13:47:47
@ manalishi Wie meinst du das mit dem escapen? Optimal wäre es den String einzeilig in dem file stehen zu haben aber die Formatierung dann wieder herstellen zu können... Mir ist noch nicht klar wie du das meinst...
|
COLOSSUS
AdministratorGNUltra
|
versuch str_replace("\n","",$in);
|
gue
Addicted
|
Hmmm versuch mal $text = str_replace("\n", "<br>", $text);
btw würde ich als Trennzeichen nicht | verwenden, da das ja auch im Text oder im Namen vorkommen kann. Verwende am besten chr(27) oder so was...
//edit: hehe collossus war schneller
|
Sokrates
Big d00d
|
str_replace haut leider auch nicht hin... danke für den tip mit chr(27) ist eine gute idee!
ich glaub ich bastel mir eine eingene funktion, danke für eure hilfe! mfG Sokrates
|
mat
AdministratorLegends never die
|
speicherst du in einem file oder in einer db?
|
Sokrates
Big d00d
|
in einem File... weißt du eine Lösung?
|
watchout
Legendundead
|
also, du machst es so: $text = str_replace("\n", "<br>", $text); $out = $name.chr(27).$email.chr(27).$title.chr(27).$text.chr(27).$date
ich hoffe du verstehst wie ich das meine...
|
mat
AdministratorLegends never die
|
vielleicht hilft dir dass.. aber insgesamt kann ich mir nicht vorstellen, dass du wirklich die absätze löschen willst. es ist eigentlich egal wieviele zeilen du bei einem entry hast. nimm einfach einen seperator bzw. eine sequenz (zB: ?|?) und trenn deine einträge damit. hier ist das was du wolltest: <?php
$pFile = fopen("gb.dat","r+");
if (!$pFile)
$pFile = fopen("gb.dat","w") or die("Error: Could not create file!");
else
{
$szContent = fread($pFile,filesize("gb.dat"));
$aEntries = explode("\r\n",$szContent);
}
if (isset($szEntry) && $szEntry != "")
{
$szEntry = str_replace("\n"," ",$szEntry);
fwrite($pFile,$szEntry."\r\n");
$aEntries[] = $szEntry;
echo "New entry added!<br>";
}
if (isset($aEntries) && count($aEntries) > 0)
{
$szEntries = "";
foreach($aEntries as $nKey => $szEntry)
{
$szEntries .= "Entry $nKey: $szEntry<br>";
}
}
fclose($pFile);
?>
<html>
<body>
<form method="post">
Eintrag:<br>
<textarea name="szEntry" cols="40" rows="8"></textarea>
<input type="submit" value="gib ihm" name="submitEntry">
</form>
<hr>
<?php echo $szEntries ?>
</body>
</html>
|
Sokrates
Big d00d
|
So jetzt ist es gelöst! $message2=str_replace("\r"," ",$message2);
$message2=str_replace("\n"," ",$message2);
das \r war auch wichtig..... @mat, ich deinen code probiert nur hat er bei mir nicht funktioniert... danke nochmals für alle beiträge sie waren sehr hilfreich! mfG Sokrates
|