escape dubbel quotes, quote en utf-8
Jeroen Jeroen
14/01/2011 14:47:42Hallo,
Ik gebruik een functie binnen een webwinkel die utf-8 gebruikt. (database is ook utf-8) Nu kwam ik erachter dat er binnen een functie een string wordt gemanipuleerd zodat dit uiteindelijk een vraagteken oplevert in plaats van een quote. (wat ik graag wil oplossen, die vraagtekens zijn niet de bedoeling)
Uhm, eerst maar wat code:
Het uitzetten van de replacement voor fancy quote lost voor mij het probleem op.
Overigens wordt de alt uiteindelijk gebruikt als onderdeel in een regel die een hover functie binnen java script aanroept als in:
Mijn vraag: iemand een mening over de preg_ str_ replace hier?
Ik heb zelf het gevoel dat dit wellicht met htmlentities te doen moet zijn, maar ben nog niet zo goed bekend met alle php functies
Op zich werkt dit gewoon, een quote wordt netjes voorzien van een \ ervoor.
Ten tweede, iemand een idee waarom het nuttig zou zijn die quote te vervangen door een fancy quote? Ik begrijp niet waarom je het zou willen, maar wellicht is er een goede reden?
Hartelijk dank,
Jeroen
Toevoeging op 14/01/2011 23:08:02:
na wat graafwerk:
$alt = addslashes($alt)
$alt = htmlspecialchars($alt)
doet hetzelfde?
Ik gebruik een functie binnen een webwinkel die utf-8 gebruikt. (database is ook utf-8) Nu kwam ik erachter dat er binnen een functie een string wordt gemanipuleerd zodat dit uiteindelijk een vraagteken oplevert in plaats van een quote. (wat ik graag wil oplossen, die vraagtekens zijn niet de bedoeling)
Uhm, eerst maar wat code:
Code (php)
1
2
3
4
5
2
3
4
5
//escape possible quotes if they're not already escapped
$alt = preg_replace("/([^\\\\])'/", '$1\\\'', $alt);
$alt = str_replace('"', '"', $alt);
//replace apostrophe with fancy quote ??WHY is this, it breaks on utf-8
//$alt = str_replace("'", "", $alt);
$alt = preg_replace("/([^\\\\])'/", '$1\\\'', $alt);
$alt = str_replace('"', '"', $alt);
//replace apostrophe with fancy quote ??WHY is this, it breaks on utf-8
//$alt = str_replace("'", "", $alt);
Het uitzetten van de replacement voor fancy quote lost voor mij het probleem op.
Overigens wordt de alt uiteindelijk gebruikt als onderdeel in een regel die een hover functie binnen java script aanroept als in:
Mijn vraag: iemand een mening over de preg_ str_ replace hier?
Ik heb zelf het gevoel dat dit wellicht met htmlentities te doen moet zijn, maar ben nog niet zo goed bekend met alle php functies
Op zich werkt dit gewoon, een quote wordt netjes voorzien van een \ ervoor.
Ten tweede, iemand een idee waarom het nuttig zou zijn die quote te vervangen door een fancy quote? Ik begrijp niet waarom je het zou willen, maar wellicht is er een goede reden?
Hartelijk dank,
Jeroen
Toevoeging op 14/01/2011 23:08:02:
na wat graafwerk:
$alt = addslashes($alt)
$alt = htmlspecialchars($alt)
doet hetzelfde?
Gewijzigd op 14/01/2011 14:48:15 door Jeroen Jeroen
Er zijn nog geen reacties op dit bericht.