PHP:
Ta bort citattecken från en sträng
Hur:
Här är ett rakt på sak exempel som använder PHP:s inbyggda funktioner:
$quotedString = "'Hej,' sa hon, \"Det är en fin dag!\"";
$unquotedString = str_replace(array("'", "\""), '', $quotedString);
echo $unquotedString; // Ger ut: Hej, sa hon, Det är en fin dag!
Enkelt, eller hur? Denna str_replace()
-funktion tar en array av tecken att ta bort från strängen, inklusive både enkla och dubbla citattecken.
Djupdykning
I PHP:s tidiga dagar var utvecklare tvungna att vara extra försiktiga med citattecken i strängar, särskilt när data skulle infogas i en databas. Felaktigt hanterade citattecken kunde leda till SQL-injektionsattacker. Då infördes magiska citattecken, en funktion som automatiskt flyktade inmatningsdata. Den blev avskaffad och slutligen borttagen eftersom den uppmuntrade till dålig kodningspraxis och säkerhetsproblem.
Nu använder vi funktioner som str_replace()
eller regex med preg_replace()
för mer avancerade mönster. Här är ett regex-exempel:
$quotedString = "'Hej,' sa hon, \"Det är en fin dag!\"";
$unquotedString = preg_replace('/[\'"]/', '', $quotedString);
echo $unquotedString;
För JSON-data kan du använda json_encode()
med alternativ som JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE
för att undvika extra bakstreck i dina citat.
När du implementerar, överväg gränsfall. Vad händer om din sträng är menad att ha vissa citattecken, som dialog i en berättelse eller tummått? Sammanhang spelar roll, så anpassa din citatteckensborttagning till datans avsedda användning.