Ik heb daarnet een functie geschreven voor het omzetten van quotes in een code,
' in & #39; en
" in & quot;
(maar dan zonder spatie na de &)
Nou doet er zich alleen iets raars voor bij mij, waarvan ik me afvroeg of dat een bug is, of omdat mijn logica gewoon niet klopt
De code:
Wat dit als resultaat heeft:
zoals je ziet staat er in regel 14 van de (echte) code een \ voor de ' -> die regel correspondeert met regel 7 van de output en daar is ie ineens verdwenen. Het lijkt dus wel of ie die single quote escaped op het moment dat ie 'm aan de safe_quot() functie doorgeeft. maar dat hoort toch niet te gebeuren?
' in & #39; en
" in & quot;
(maar dan zonder spatie na de &)
Nou doet er zich alleen iets raars voor bij mij, waarvan ik me afvroeg of dat een bug is, of omdat mijn logica gewoon niet klopt
De code:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| function quote_safe($str) { $str = str_replace("\\'", "'", $str); $str = str_replace("'", "'", $str); $str = str_replace("\\\"", "\"", $str); return str_replace("\"", """, $str); } echo "is 't een bug?<br>\n"; echo "is \'t een bug?<br>\n"; echo "is 't een bug?<br>\n"; echo "is \'t een bug?<br>\n"; echo quote_safe("is 't een bug?<br>\n"); echo quote_safe("is \'t een bug?<br>\n"); echo quote_safe("is 't een bug?<br>\n"); echo quote_safe("is \'t een bug?<br>\n"); |
Wat dit als resultaat heeft:
PHP:
1
2
3
4
5
6
7
8
9
| // dit is geen php code, maar anders worden die codes in single quotes weergegeven is 't een bug? is \'t een bug? is 't een bug? is \'t een bug? is 't een bug? is 't een bug? is 't een bug? is \'t een bug? |
zoals je ziet staat er in regel 14 van de (echte) code een \ voor de ' -> die regel correspondeert met regel 7 van de output en daar is ie ineens verdwenen. Het lijkt dus wel of ie die single quote escaped op het moment dat ie 'm aan de safe_quot() functie doorgeeft. maar dat hoort toch niet te gebeuren?