Zoals de titel zegt, hoe kan ik:
Een <ENTER> laten omzetten tot een: <br />?

Ik heb nu deze string:
$bericht = eregi_replace("\r\n|\r|\n","\r\n<br />\r\n",$bericht);+

Maar die werkt niet.... In de zin van: als je een enter typt, er nog geen enter komt bij het bekijken.

Mijn script is dit:

<head>
<title>OSM Fan</title>
<link rel="stylesheet" href="../stijl8.css" type="text/css" media="screen">
<style type="text/css">
input.submit{ 
background: url('../images/registreren_but.gif') no-repeat;
width: 69px; 
height: 21px;
}
</style>
</head>

<body>
<div id="wrapper">

<div id="header"><img src="../images/osmf_logo.gif"</div>

<div id="menu">
<ul>
<li><a href="../forum">Forum</a></li>
<li><a href="../priveberichten.php">Privé berichten</a></li>
<li><a href="../inloggen.php">Inloggen</a></li>
<li><a href="http://www.pepijnstrips.nl/osm/osm/forum/?uitloggen">Uitloggen</a></li>
</ul>
</div>
<font face="Arial">
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST'){
   if(isset($_POST['toevoegen'])){
      if(trim($_POST['topic']) == ""){
          echo 'Je bent de topic titel vergeten';
      }elseif(trim($_POST['bericht']) == ""){
          echo 'Je bent het bericht vergeten';
      }else{
          session_start();
          include('verbind.php'); 
          $topic = trim($_POST['topic']);
          $topic = wordwrap($topic, 100, "\n", true); 
          $topic = mysql_real_escape_string($topic);
          $topic = htmlentities($topic);
          $bericht = trim($_POST['bericht']);
          $bericht = wordwrap($bericht, 100, "\n", true); 
          $bericht = mysql_real_escape_string($bericht);
          $bericht = htmlentities($bericht);
	  $bericht = eregi_replace("\r\n|\r|\n","\r\n<br />\r\n",$bericht);
          $sqlcode = "INSERT INTO topic 
               (topic_titel, topic_bericht, gebruiker_id, topic_datumtijd)
                VALUES
    ('".$topic."','".$bericht."','".$_SESSION['gebruiker_id']."',now())";
          // now() gebruiken we om de huidige tijd en datum te gebruiken
          $resultaat = mysql_query($sqlcode)or die(mysql_error());
               if($resultaat){
     echo "Toevoegen Gelukt!!<BR>";
     echo "<a href='index.php'>Topic Overzicht</a>";
    }else{
     echo "Toevoegen Mislukt";
    }
        }
  }else{
   echo 'Deze actie is niet toegestaan keer <a href="?pagina=forum_overzicht">terug</a> naar het forum.';
  }
}else{
  echo 'Deze actie is niet toegestaan keer <a href="?pagina=forum_overzicht">terug</a> naar het forum.';
}
?>
<div id="footer">
&copy; 2009 Gamebasics - Opdracht door: Lars Groot - mail: [email protected]
</div>

</div>
<textarea style="width:1px;height:1px;background-color:#F5FFD8;border-left-style:none;border-right-style:none;border-top-style:none;border-bottom-style:none;" rows="1" cols="1">
<%
connect.close
set connect = nothing
forum.close
set forum = nothing
end sub
%>
</body>
</html>


Bedankt voor het kijken en helpen

Lars
(Ik heb het op internet ook gevonden, maar dat is deze dus en die begrijp ik niet....)
@joey: Die functie doet exact hetzelfde als nl2br() die reeds in php zit ingebakken.
Hoe je het ook wendt of keert. PHP_EOL zorgt voor een betere consistancy wat betreft programmeren. Ik weet dan ook niet wat hier het probleem is, want ikzelf zit op een Windows PC en mijn website op een Linux Server. Ik maak gebruik van PHP_EOL en er zijn simpelweg geen problemen.

EDIT: Iets wegschrijven met newlines erin door de Linux server en vervolgens exploden op de newlines met behulp van PHP_EOL werkt dan gewoon. Ook met behulp van PHP_EOL de newlines vervangen door <br />'s zorgt voor geen problemen. Er is dus gewoon geen conflict tussen client en server.
GaMer in dit geval komt dat, omdat hij dus de \n vervangt door een <br /> of hem daar breekt. De \r van jouw Windows staat er waarschijnlijk dan nog. Het werkt dan dus wel...
@GaMer13:
PHP_EOL is op een linux machine gewoon een \n en meer niet. Dus mocht er in de tekst een \r staan dan wordt die niet meegenomen in jouw verhaal.

Bij nl2br() worden beide, dus zowel \n, als \r, omgezet naar een <br/>. Omgezet is echter niet de juiste term, er wordt een <br/> vóór gezet en de \n en \r blijven gewoon in de tekst staan.
Zoals er al vaker is gezegt of nl2br (kwam ik een week geleden pas achter..) of preg_replace dat is de makkelijkste manier werkt altijd bij mij

Reageren