[PHP] enkele backslash replacen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Johnny
  • Registratie: December 2001
  • Laatst online: 14:39

Johnny

ondergewaardeerde internetguru

Topicstarter
Omdat de output in een JavaScript variable komt worden backslashes daar als een escape character gezien. Een string als wel\niet veranderd dan in wel
iet
.

De backslashes moeten dus vervangen worden door & #92;* wat het probleem op zou moeten lossen.

Maar dit kan niet:
PHP:
1
$string = str_replace("\", "\");

De backslash escaped het dubbele aanhalingsteken, hetzelfde met een dubbele backslash (lijkt mij).

Heeft iemand een oplossing hiervoor?

* zonder spatie laat GoT het unicode teken ook als backslash zien

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


Acties:
  • 0 Henk 'm!

  • Wolfboy
  • Registratie: Januari 2001
  • Niet online

Wolfboy

ubi dubium ibi libertas

PHP:
1
$string = str_replace("\\", "\");
en dit werkt ook niet?

Blog [Stackoverflow] [LinkedIn]


Acties:
  • 0 Henk 'm!

  • André
  • Registratie: Maart 2002
  • Laatst online: 12-09 14:32

André

Analytics dude

htmlspecialchars
urlencode

Zoiets was het toch?

Acties:
  • 0 Henk 'm!

  • Wolfboy
  • Registratie: Januari 2001
  • Niet online

Wolfboy

ubi dubium ibi libertas

klopt ja, maar als je maar 1 teken wilt omzetten dan hoeft dat niet

maar in dit geval zou hij idd urlencode nodig hebben

Blog [Stackoverflow] [LinkedIn]


Acties:
  • 0 Henk 'm!

  • Johnny
  • Registratie: December 2001
  • Laatst online: 14:39

Johnny

ondergewaardeerde internetguru

Topicstarter
Wolfboy schreef op 04 januari 2004 @ 23:53:
PHP:
1
$string = str_replace("\\", "\");
en dit werkt ook niet?
Toch wel! Maar niet volgens de syntax highlighting van mijn editor. :(

Ik ben er net achter dat unicode dingen ook niet in JavaScript variable werken.

Deze werkt wel helemaal goed:

PHP:
1
$string = str_replace(array("\\", "'", "&"), array("\\\\", "\'", "&"), $string);


backslashes krijgen een tweelingbroetje en enkele quotes krigen er ook eentje. Dubbele quotes en andere gevaarlijke dingen worden vantevoren, al doormiddel van htmlspecialchars() omgezet. Iedere & wordt nog een keer omgezet naar & om te voorkomen dat JavaScript HTML tags wel rendert in plaats van < >.

[ Voor 25% gewijzigd door Johnny op 05-01-2004 00:31 ]

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


Acties:
  • 0 Henk 'm!

  • Apollo_Futurae
  • Registratie: November 2000
  • Niet online
Johnny schreef op 05 januari 2004 @ 00:04:
PHP:
1
$string = str_replace(array("\\", "'", "&"), array("\\\\", "\'", "&amp;"), $string);
"\'" is strict genomen onjuist. Een backslash in een string moet je escapen: "\\'". Php heeft er geen probleem mee, maar je weet niet of dat ooit (terecht) zal veranderen, en het leest erg vreemd.

Trouwens raar dat de & amp; binnen ]php[ wordt weergegeven als een &, dat is vast niet de bedoeling?

Pas de replâtrage, la structure est pourrie.


Acties:
  • 0 Henk 'm!

  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 23-07 18:19
ook javascript heeft geen problemen met dubbele backslashes zover als ik weet, je kunt ze dus gewoon escapen :)

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt

Pagina: 1