Hoi,

ik zit met een probleem.

Ik heb een scriptje dat tekst schrijf naar een tekstbestand.

De tekst is (voorbeeld):

"jfhsrfherhgre
fggrehr
trhrehtrhrthryh
rhrhyrhyrhryhry
hyryrhyrhrthyhtr"

als php dit wegschrijft zet hij alles op 1 lijn. Is er een manier op het weg te schrijven in verschillende lijnen. zoals de tekst wordt weergegeven.

Ik hoop dat iemand me hier snel mee kan helpen.

Groetjes,
Ik neem aan dat het in een tekstarea word geschreven?
Dan kan je een nl2br() om je $_POST var zetten.
Dus iets van :

<?php

nl2br($_POST['content']);
?>
Als je het weer wilt bewerken, moet je wel die <br /> 's verwijderen.
Anders krijg je dubbele <br /> erin...
Dat kan je oplossen door een str_replace doen.

Dus dan krijg je iets van:

<?php
// file inlezen
$content = str_replace('<br />', PHP_EOL, $content);
?>
<textarea name="content"><?php echo $content;?></textares>
Kevin Jespers op 27/07/2012 12:50:09

... als php dit wegschrijft zet hij alles op 1 lijn. ...


Dat is toch wel ongelukkig uitgedrukt.

Het is niet php die die tekst op 1 lijn zet.
Open eens die file in kladblok; je ziet dat alles mooi op meerdere lijnen zal staan.

Het is gewoon dat HTML een nieuwe lijn in de code negeert.

Ik zou dan ook de oplossing niet zoeken bij het schrijven naar file, maar wel na het lezen van de file.

Voorbeeldje
<?php
$tekst = "jfhsrfherhgre
fggrehr
trhrehtrhrthryh
rhrhyrhyrhryhry
hyryrhyrhrthyhtr";
//tekst wegschrijven naar file:
file_put_contents('tekstfile.txt', $tekst); // zie juist dat je de rechten hebt om die file aan te maken

//terug lezen van de file
$file_inhoud = file_get_contents('tekstfile.txt');

// file inhoud tonen op je scherm:
echo '<!doctype html>
<html>
<head></head>
<body>
<div>' . nl2br($file_inhoud) . '</div>
<textarea>' . htmlentities($file_inhoud) . '</textarea>
</body>
</html>';
?>

Reageren