[PHP] Escape tekens werken niet

Pagina: 1
Acties:
  • 353 views

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo,

Ik heb een eigen webserver draaien en kan php scripts uitvoeren.
Het probleem is, dat escape karakters niet worden herkend.

Bijvoorbeeld:

echo "Test\ntest"; // output is dan gewoon Test test

De oplossing zal wel heel simpel zijn, maar ik vind er nergens iets van terug op google, zelfs niet op W3schools..
Ook hier op tweakers vind ik het niet.

Dankuwel

Acties:
  • 0 Henk 'm!

  • orf
  • Registratie: Augustus 2005
  • Laatst online: 01:40

orf

Kijk eens in de bron van de pagina. Een newline is in HTML gewoon whitespace.

PHP:
1
2
3
4
5
<?php

echo nl2br("Test\ntest");

?>


Zorgt waarschijnlijk voor de output die je wilt.

Acties:
  • 0 Henk 'm!

  • Osiris
  • Registratie: Januari 2000
  • Niet online
Of:

PHP:
1
header('Content-Type: text/plain');


Waarom HTML aanleveren als het in principe simpele tekst is? ;)

(Afhankelijk van waar de TS mee bezig is uiteraard)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
orf schreef op donderdag 22 juli 2010 @ 19:49:
Kijk eens in de bron van de pagina. Een newline is in HTML gewoon whitespace.

PHP:
1
2
3
4
5
<?php

echo nl2br("Test\ntest");

?>


Zorgt waarschijnlijk voor de output die je wilt.
Nja, dan kan ik net zo goed <br /> gebruiken..
Maar ik zie in veel voorbeeldjes dat het wel zou moeten gaan met gewoon \n ... Of werkt dit alleen zonder html erbij?


@Osiris:

Ik combineer xHTML strict 1.0 samen met PHP 5.
Dus zoals orf zei, komt het door die html dat \n niet herkend wordt als new line voor php..

Maar ik ga proberen wat jij hebt gepost!

Thx allebei

Acties:
  • 0 Henk 'm!

  • Tarabass
  • Registratie: Februari 2008
  • Laatst online: 09-04 17:02

Tarabass

Webmaster

\n\r ?

Acties:
  • 0 Henk 'm!

  • Wolfboy
  • Registratie: Januari 2001
  • Niet online

Wolfboy

ubi dubium ibi libertas

Maakt niet uit. En dan nog is het \r\n

In een HTML bestand zie je newlines alleen in <pre> tags en in <textarea> tags. Anders moet je altijd nl2br gebruiken.

Blog [Stackoverflow] [LinkedIn]


Acties:
  • 0 Henk 'm!

  • RaZ
  • Registratie: November 2000
  • Niet online

RaZ

Funky Cold Medina

En sinds wanneer is dat valide HTML?

edit: urgh... /laat

[ Voor 6% gewijzigd door RaZ op 22-07-2010 20:11 ]

Ey!! Macarena \o/


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ok, maar als ik een php script zonder ook maar iets html, krijg ik het nog niet voor mekaar...

vb: index.php

bevat:
<?php
echo "test \n test";
?>

Als ik dit uitprobeer zie ik nog altijd test test ,, op één regel..

MAAR als ik dan de paginabron bekijk zie ik:
1. test
2. test

What's goin on?! :p

Acties:
  • 0 Henk 'm!

  • Osiris
  • Registratie: Januari 2000
  • Niet online
Verwijderd schreef op donderdag 22 juli 2010 @ 20:17:
Ok, maar als ik een php script zonder ook maar iets html, krijg ik het nog niet voor mekaar...

vb: index.php

bevat:
<?php
echo "test \n test";
?>

Als ik dit uitprobeer zie ik nog altijd test test ,, op één regel..

MAAR als ik dan de paginabron bekijk zie ik:
1. test
2. test

What's goin on?! :p
Osiris schreef op donderdag 22 juli 2010 @ 19:52:
Of:

PHP:
1
header('Content-Type: text/plain');


Waarom HTML aanleveren als het in principe simpele tekst is? ;)

(Afhankelijk van waar de TS mee bezig is uiteraard)

Acties:
  • 0 Henk 'm!

  • orf
  • Registratie: Augustus 2005
  • Laatst online: 01:40

orf

Dit is precies de standaard behavior. Je webserver output je script standaard als text/html. In Html zie je een enter in de broncode niet als een enter in je scherm. Dat zou ook volstrekt onwenselijk zijn omdat je dan teksten op 1 hele lange regel zou moeten zetten om geen onnodige enters te zien op je scherm.

Het heeft dan ook niets met PHP te maken; als je zelf een .html bestand aanmaakt met enters erin, dan zie je die ook niet.

Met CSS en/of de html tag <pre> kun jer ervoor zorgen dat je wel enters ziet op je scherm.

Acties:
  • 0 Henk 'm!

  • Manuel
  • Registratie: Maart 2008
  • Laatst online: 19-09 11:12
Osiris schreef op donderdag 22 juli 2010 @ 19:52:
Of:

PHP:
1
header('Content-Type: text/plain');


Waarom HTML aanleveren als het in principe simpele tekst is? ;)

(Afhankelijk van waar de TS mee bezig is uiteraard)
Dat is niet valide met een XHTML document, aangezien dat application/xhtml+xml *hoort* te zijn.

Ik snap trouwens niet wat er fout is aan de functie nl2br, om die te gebruiken in je PHP code. Je hebt dan nog steeds geen HTML in je code staan. ;)

[ Voor 0% gewijzigd door Manuel op 22-07-2010 20:26 . Reden: :) ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ja, had het net geprobeerd..

Als ik een php script binnen html gebruik, dan zet hij ook ALLE html om in platte tekst.. hoewel jouw regel toch enkel binnen het script staat...?
Dan moet toch alleen het script platte tekst worden?


@orf: Ok nu ben ik er helemaal uit, bedankt! :)

@Manuel: Ja, dan is nl2br toch het meest gepast.. ok :)

@Osiris beneden: Ja, ik ben er intussen al heel wat wijzer op geworden, dankzij jullie.. Merci!

Ik heb nu de info die ik nodig had, bedankt!

[ Voor 25% gewijzigd door Verwijderd op 22-07-2010 20:33 ]


Acties:
  • 0 Henk 'm!

  • Osiris
  • Registratie: Januari 2000
  • Niet online
Manuel schreef op donderdag 22 juli 2010 @ 20:24:
[...]

Dat is niet valide met een XHTML document, aangezien dat application/xhtml+xml *hoort* te zijn.
Ik ging er vanuit dat ie *al* zn (X)HTML weggehaald had als wijze van proef.

Alleen 'snapt' de TS niet dat de webserver probably alsnog een 'Content-Type: text/html' by default zal serveren.
Verwijderd schreef op donderdag 22 juli 2010 @ 20:27:
[...]


Ja, had het net geprobeerd..

Als ik een php script binnen html gebruik, dan zet hij ook ALLE html om in platte tekst.. hoewel jouw regel toch enkel binnen het script staat...?
Dan moet toch alleen het script platte tekst worden?
Les 1 als je iets nieuws leest wat je niet snapt: opzoeken wat het is, wat het doet, waarvoor 't dat doet en hoe 't precies werkt, zodat je het wel snapt. :)

[ Voor 38% gewijzigd door Osiris op 22-07-2010 20:28 ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

RaZ schreef op donderdag 22 juli 2010 @ 20:09:
[...]

En sinds wanneer is dat valide HTML?
Sinds wanneer is het onvalide HTML? Alsof het je browser boeit of 'ie als eerste ASCII-teken 10 of 13 tegenkomt; beiden zijn whitespace. ;) Jij bedoelt iets anders.

@topicstarter: dit is wel heel basale kennis van webdevelopment; hier had je prima zelf uit kunnen komen. Doe volgende keer dus zelf even wat onderzoek voordat je een vraag stelt. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1

Dit topic is gesloten.