login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Line Breaks bij Input fields

Offline Tony_mortana - 20/10/2006 14:28
Avatar van Tony_mortanaPHP interesse Ik verlies de Line Breaks bij een textbox (bv bij een mail form)
als ik die uitlees zijn de breaks opeens weg  

En ik kan geen WRAP gebuiken bij de textbox ivm XHTML

Wie weet hoe ik dit oplos?

5 antwoorden

Gesponsorde links
Offline GTW - 20/10/2006 14:32 (laatste wijziging 20/10/2006 14:33)
Avatar van GTW Gouden medaille

PHP gevorderde
via php.net/nl2br
Offline Gerard - 20/10/2006 16:41
Avatar van Gerard Ouwe rakker
Citaat:
Ik verlies de Line Breaks bij een textbox (bv bij een mail form)
als ik die uitlees zijn de breaks opeens weg


Om het even duidelijk uit te leggen. De linebreaks die toegevoegd worden (\n) zijn niet weg. In HTML staat een linebreak echter niet gelijk aan een enter. Als je de sourcecode van je pagina gaat bekijken zal je zien dat de linebreak wel is meegenomen.

Om voor elke linebreak ook een enter toe te voegen kan je gebruik maken van de php functie PHP.net: nl2br zoals GTW hierboven al opmerkt. Hierbij moet echter wel opgemerkt worden dat de naam van de functie niet doet wat je zou vermoeden. De linebreaks worden niet omgezet naar een <br /> maar er wordt echter een <br /> toegevoegd bij de linebreak.

PHP maakt standaard gebruik van de linebreak \n. Dat is de linux manier. Windows maakt er \r\n van en Mac maakt er alleen \r van in bestanden (tegenwoordig misschien \r\n). Dat is ook iets om rekening mee te houden natuurlijk. 

Tip: PHP5 heeft een constante PHP_EOL geintroduceert die gelijk staat aan de linebreak die op het operating system van de server, gebruik wordt.
Offline Tony_mortana - 20/10/2006 17:31
Avatar van Tony_mortana PHP interesse Ja ik weet hoe het werkt!

Alleen kwam ik niet achter mijn fout, ik ben nu
een stuk verder maar weet nog steeds de oplossing niet.

de volgende stuk code gaat het fout.
  1. $emailstring = "
  2. -----------------------------------------------------------------
  3. Re: ".$yoursubject."
  4. ----------------------------------------------------------------
  5. Naam: ".$name."
  6. Email: ".$email."
  7. Text:
  8. ".$temptext."
  9. ----------------------------------------------------------------
  10. ";


De var temptext bevat gewoon text met idd \n breaks.
Alleen als ik deze string verstuur met de standaard php mail functie
zijn opeens de breaks weg.
En alleen de breaks van de variabele $temptext, de rest van de breaks (waar niet eens <br> of \r\n staat) doen het wel gewoon. 

Het werkt ook niet als ik <br> strreplace gebruik of voor \r\n of alleen \n vervang.

Ik voeg de variabele op een verkeerde manier in de string,
maar hoe het nu wel echt moet????  
Offline Gerard - 20/10/2006 18:43
Avatar van Gerard Ouwe rakker Je hebt een test in een string die je hebt aangegeven met " en ".
Als je newlines wilt meenemen moet je gebruik maken van ' en ' of je dient zelf de \n aan te geven.
Offline Tony_mortana - 20/10/2006 19:54 (laatste wijziging 20/10/2006 20:38)
Avatar van Tony_mortana PHP interesse OK, ik heb het opgelost!

  1. $temptext = nl2br($enquiry);
  2. $temptext = str_replace("<br />","\n",$temptext);


Heb deze code maar ff gebruikt,
en alles onde aanhalingstekens gezet en het werkt opeens  

Bedankt
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.366s