EOL probleem in Linux, in IIS werkt het goed.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Rene Wennekes

Rene Wennekes

06/03/2014 10:25:43
Quote Anchor link
Hallo, ik heb een probleem met de onzichtbare EOL.

Net als deze tekst heb ik een mysql database met zo'n tekst die komt uit eeb input en heeft gewone regelafbrekingen.

Nu wil ik die tekst via innerHTML op het scherm weergeven. Echter in de html wordt de code in "onclick" dus ook afgebroken.

In de html krijg je dan

onclick = bla bla innerHTML='1e regel
2e regel
3e regel'

Nu heb ik dat op mijn windows test server met php weten op te lossen met

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$description
= str_replace(PHP_EOL, '<br />', $description);
?>


Nu blijkt het echter op de linux webserver niet te werken.

Iemand een idee?

p.s. ik al 3x geprobeer met <script>, <code> maar iedere keer krijg ik de code niet in een code venster. wellicht een idee omdat tussen titel en tekst waar ook B I U S link en quote staat te zetten.
Gewijzigd op 06/03/2014 10:30:27 door Rene Wennekes
 
PHP hulp

PHP hulp

28/03/2024 13:20:10
 
Michael -

Michael -

06/03/2014 10:28:43
Quote Anchor link
http://stackoverflow.com/questions/20908100/invisible-character-at-the-end-of-line-using-line-break:
If you are unsure about whether a single \n or \r could occur (and either is a valid line end), or possibly in combination with the other, here is a belt-and-suspenders approach:

replace all \n\r and all \r\n combos with \n alone.
replace all remaining \r with \n.
replace all \n with <br/>
with

string = string.replace(/\r?\n\r?/g, '\n');
string = string.replace(/\r/g, '\n');
string = string.replace(/\n/g,'<br/>');
Written out as separate instructions for clarity. Instead of first changing to \n, you can also immediately insert <br/>s, of course.



Toevoeging op 06/03/2014 10:31:38:

>> p.s. ik al 3x geprobeer met <script>, <code> maar iedere keer krijg ik de code niet in een code venster. wellicht een idee omdat tussen titel en tekst waar ook B I U S link en quote staat te zetten.

[code.] en [/code.] (zonder punt).
 
- SanThe -

- SanThe -

06/03/2014 10:35:08
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$description
= nl2br($description);
$description = str_replace(array("\r","\n"), '', $description);
?>
 
Rene Wennekes

Rene Wennekes

06/03/2014 10:35:24
Quote Anchor link
Is that javascript?

I have to fix it with php because the text (with line break) is in a php variabele.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
  print "&nbsp;<a href='#' onclick=\"document.getElementById('popup').style.display = 'block'; document.getElementById('popup-tekst').innerHTML='$description';\">$title</a>&nbsp;";
?>
 
Michael -

Michael -

06/03/2014 10:36:49
Quote Anchor link
innerHTML klinkt als javascript ;) Maar anders lijkt me nl2br() voldoende. Anders Santhe's voorbeeld.
 
Rene Wennekes

Rene Wennekes

06/03/2014 10:38:12
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
  $description
= str_replace('\n', '<br />', $description);
  $description = str_replace('\r', '<br />', $description);
?>


al geprobeerd maar werkt niet.

nlbr werkte ook niet omdat er wel <br /> achter gezet wordt maar de regeleindes in de code blijven staan.

Ben even weg kom straks terug ....
Gewijzigd op 06/03/2014 10:39:59 door Rene Wennekes
 
- SanThe -

- SanThe -

06/03/2014 10:39:43
Quote Anchor link
- SanThe - op 06/03/2014 10:35:08:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$description
= nl2br($description);
$description = str_replace(array("\r","\n"), '', $description);
?>


Dit is anders dan jouw scriptje.
 
Rene Wennekes

Rene Wennekes

06/03/2014 10:42:34
Quote Anchor link
SanThe,

ff snel je 2 regels toegevoegd maar werkt niet op de linux-bak, sorry.
 
- SanThe -

- SanThe -

06/03/2014 10:46:08
Quote Anchor link
En hoe ziet het er dan nu uit?
 
Michael -

Michael -

06/03/2014 11:05:02
Quote Anchor link
>> nlbr werkte ook niet omdat er wel <br /> achter gezet wordt maar de regeleindes in de code blijven staan.

Als de breaks verder al goed zijn, hoef je alleen de \n\r op te ruimen dus

$description = preg_replace("/\s+/", " ", trim($description));

edit: sorry Ivo ;) Aangepast.
Gewijzigd op 06/03/2014 11:40:48 door Michael -
 
Ivo P

Ivo P

06/03/2014 11:37:34
Quote Anchor link
"\r" is een karakter: de return.

'\r' zijn letterlijk 2 karakters: een backslash en de letter r.

Net als
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$i
= 1;
echo '$i';
echo "$i";
?>


in de eerste echo gewoon 2 tekens op het scherm zet.

Let dus op met welke quotes je gebruikt
 
Rene Wennekes

Rene Wennekes

06/03/2014 22:58:49
Quote Anchor link
ok probleem opgelost.
NIET de nlbr
WELregel 3 van Santhe (\r en \n vervangen door '' NA mijn oorspronkelijke regel (PHP_EOL -> <br />

En ik geloof dat ik een boosdoen had, ik had vooraf $description door de htmlspecialchars() gehaald en dat mag schijnbaar niet.
Onder Windows was het schijnbaar geen probleem. (ja ja Linux is een strenge leermeester)

Alleen nu heb ik het probleem dat ik html waarschuwingen krijg omdat & niet verandert wordt in &amp; .....

==update ===

probleem heeft zich nu verplaatst althans als ik op de linux-doos de volgende regels weghaal

<php
$title = htmlspecialchars($title);
$description = htmlspecialchars($description);
?>

werkt het.
Maar dan krijg ik html foutmeldingen .....

Zet ik het terug werkt het hele verhaal niet (op de linux-doos).

op de windows-doos maakt het niks uit


====== Update ========
In de database waar $description wordt uitgehaald zit vaak het ¤ teken. Dit zou het euro teken moeten zijn. Onder Windows is het ook het euroteken. Maar bij de Linux-doos werkt het dan totaal niet en wordt er in de InnerHTML niks afgedrukt .....
Gewijzigd op 06/03/2014 23:46:34 door Rene Wennekes
 
Ivo P

Ivo P

07/03/2014 05:42:14
Quote Anchor link
Kennelijk stel je niet zelf en karkterset in en verschilt die 0p beide servers. Los van iis of apache, of windows / linux.
Http://wiki.pfz.nl/charactersets
 
Rene Wennekes

Rene Wennekes

07/03/2014 07:20:39
Quote Anchor link
Tsja, nooit problemen mee gehad (sinds kort op linux).
De eerdere post hebben wel de oplossing gebracht.

Hierdoor kwam een ander probleem aan het licht (verplaatsing probleem).

Dus ik denk dat het off-topic gaat worden.
Wellicht beter om een nieuw draadje te starten

Luitjes, bedankt voor goede richting op wijzen ...
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.