[SOLVED]Mit php Absätze aus Strings entfernen?

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/solvedmit_php_absaetze_aus_strings_entfernen_110256/page_1 - zur Vollversion wechseln!


Sokrates schrieb am 21.03.2004 um 13:43

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


COLOSSUS schrieb am 21.03.2004 um 13:45

$out=ln2br($in);


manalishi schrieb am 21.03.2004 um 13:46

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 schrieb am 21.03.2004 um 13:52

Danke für die schnellen Antworten...
@ Colossus...mit der funktion nl2br kommt folgende ausgabe:

Code:
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 schrieb am 21.03.2004 um 13:55

versuch str_replace("\n","",$in);


gue schrieb am 21.03.2004 um 13:57

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 schrieb am 21.03.2004 um 14:06

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 schrieb am 21.03.2004 um 15:30

speicherst du in einem file oder in einer db?


Sokrates schrieb am 21.03.2004 um 15:35

in einem File...
weißt du eine Lösung?


watchout schrieb am 21.03.2004 um 17:02

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 schrieb am 21.03.2004 um 20:14

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:

Code: PHP
<?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 schrieb am 22.03.2004 um 16:32

So jetzt ist es gelöst!

Code: PHP
$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




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026