escape dubbel quotes, quote en utf-8

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jeroen Jeroen

Jeroen Jeroen

14/01/2011 14:47:42
Quote Anchor link
Hallo,

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)
PHP script in nieuw venster Selecteer het PHP script
1
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);

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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
onmouseover="showtrail(' . "'$products_image_zoom','$alt', etcetra...


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.



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.