Ik heb wat javascript en php geschreven om text uit een .txt te halen en deze in een div te zetten. Maar wanneer de tekst een enter (new line) bevat breekt(vermoedelijk) mijn javascript. Is er een manier om dit te voorkomen of om de enter er uit te filteren?
Geen enter gebruiken maar <br />.
- SanThe - op 10/02/2014 15:11:00

Geen enter gebruiken maar <br />.
Dankjewel voor dit Über geweldige idee, even serieus dat is het zelfde als vragen hoe je aan de andere kant komt van een ravijn en dan zeggen;"door het niet te proberen..?"
En toch is het serieus bedoelt.
Misschien begrijp ik je probleem dan niet goed.
Het gaat om enters in een regel javascript, daar kan javascript inderdaad niet tegen. Waar je in php prima dit kunt doen:

<?php
$str = 'Dit
        is
        een
        tekst'; 
?>

kan je in javascript niet die doen:
[code lang=js]
var str = 'Dit
is
een
tekst';
[/code]
Je zal die enters dus moeten strippen voor je het in de output gooit. Overigens kan nl2br (dus de enters vervangen door html linebreaks) ook helpen, waarna je de nieuwe regels wel houdt op de pagina in html. En daarmee is Santhe's advies dus zeker geen slecht advies.

De vraag is nu alleen, hoe krijg jij die tekst uit het bestand in je output? Alleen dan kan er ook een voorbeeld gegeven worden van hoe je die enters eruit kan halen.
Ik ben het met - San The - eens... haal nl2br() aan de PHP kant over de data heen en je hebt geen new lines meer in je gegenereerde javascript.

Mocht #text_post een <pre> element zijn, of zich in een <pre> tag bevinden, dan kun je new lines vervangen door "\n".
nl2br — Inserts HTML line breaks before all newlines in a string

Dus dat haalt de 'enter' niet weg.
- SanThe - op 10/02/2014 15:24:38

En toch is het serieus bedoelt.
Misschien begrijp ik je probleem dan niet goed.

Sorry nogal geïrriteerd, Mijn vraag is, hoe krijg ik de enter uit de valeu? of hoe vervang ik die enter voor bijvoorbeeld een </br>. Op de een of andere manier moet ik bij het lezen van het .txt bestand die enters er uit filteren, doe ik dat niet functioneert de code niet meer.



Toevoeging op 10/02/2014 16:01:59:

Dos Moonen op 10/02/2014 15:42:32

Ik ben het met - San The - eens... haal nl2br() aan de PHP kant over de data heen en je hebt geen new lines meer in je gegenereerde javascript.

Mocht #text_post een <pre> element zijn, of zich in een <pre> tag bevinden, dan kun je new lines vervangen door "\n".
A kijk aan, maar hoe gebruik ik nl2br() in mijn php?

- SanThe - op 10/02/2014 15:51:22

nl2br — Inserts HTML line breaks before all newlines in a string

Dus dat haalt de 'enter' niet weg.


$tekst_zonder_enters = str_replace(array("\n","\r"), "", nl2br($tekst_met_enters));
ErwinH,

$file = fopen($count.' '.'v'.'.txt', 'r');
$text = fread($file, filesize($count.' '.'v'.'.txt'));
echo "
<script language='javascript' type='text/javascript'>
function writeto$count(){
document.getElementById( 'text_post' ).value = '$text';}
</script>";
fclose($file);
Wel even de code tags gebruiken zodat het nog een beetje leesbaar is:

<?php
$file = fopen($count.' '.'v'.'.txt', 'r');
$text = fread($file, filesize($count.' '.'v'.'.txt'));
echo "
  <script language='javascript' type='text/javascript'>
    function writeto$count(){
      document.getElementById( 'text_post' ).value = '".nl2br( $text )."';
    }
  </script>";
fclose($file);
?>

Reageren