PHP:
Quotes verwijderen uit een string
Hoe:
Hier is een eenvoudig voorbeeld met behulp van PHP’s ingebouwde functies:
$quotedString = "'Hallo,' zei ze, \"Het is een mooie dag!\"";
$unquotedString = str_replace(array("'", "\""), '', $quotedString);
echo $unquotedString; // Geeft uit: Hallo, zei ze, Het is een mooie dag!
Eenvoudig, toch? Deze str_replace()
functie neemt een reeks karakters die uit de string verwijderd moeten worden, inclusief zowel enkele als dubbele aanhalingstekens.
Diepgaande Duik
Terug in de vroege dagen van PHP, moesten ontwikkelaars extra voorzichtig zijn met aanhalingstekens in strings, vooral bij het invoegen van gegevens in een database. Onjuist afgehandelde aanhalingstekens konden leiden tot SQL injectie-aanvallen. Toen kwamen magische aanhalingstekens, een functie die invoergegevens automatisch ’escaped’. Het werd afgekeurd en uiteindelijk verwijderd omdat het slechte programmeerpraktijken en beveiligingsproblemen aanmoedigde.
Nu gebruiken we functies zoals str_replace()
of regex met preg_replace()
voor meer geavanceerde patronen. Hier is een regex voorbeeld:
$quotedString = "'Hallo,' zei ze, \"Het is een mooie dag!\"";
$unquotedString = preg_replace('/[\'"]/', '', $quotedString);
echo $unquotedString;
Voor JSON-gegevens, zou je json_encode()
kunnen gebruiken met opties zoals JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE
om extra backslashes in je aanhalingstekens te vermijden.
Bij implementatie, overweeg randgevallen. Wat als je string bepaalde aanhalingstekens moet hebben, zoals dialoog in een verhaal of inches in metingen? Context doet ertoe, dus pas je aanhalingsteken-verwijdering aan op het beoogde gebruik van de gegevens.