Ta bort citattecken från en sträng

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.

Se även