Fjerne anførselstegn fra en streng

PHP:
Fjerne anførselstegn fra en streng

Hvordan:

Her er et enkelt eksempel som bruker PHPs innebygde funksjoner:

$quotedString = "'Hello,' she said, \"It's a fine day!\"";
$unquotedString = str_replace(array("'", "\""), '', $quotedString);
echo $unquotedString; // Skriver ut: Hello, she said, Its a fine day!

Enkelt, ikke sant? Denne str_replace() funksjonen tar en rekke med tegn som skal fjernes fra strengen, inkludert både enkle og doble anførselstegn.

Dykk dypere

Tilbake i PHPs tidlige dager måtte utviklere være ekstra forsiktige med anførselstegn i tekststrenger, spesielt når de satte inn data i en database. Feilhåndterte anførselstegn kunne føre til SQL-injeksjonsangrep. Der kom magiske anførselstegn inn, en funksjon som auto-escaped inndata. Den ble avskaffet og til slutt fjernet fordi den oppmuntret til dårlige kodingspraksiser og sikkerhetsproblemer.

Nå bruker vi funksjoner som str_replace() eller regex med preg_replace() for mer avanserte mønstre. Her er et regex-eksempel:

$quotedString = "'Hello,' she said, \"It's a fine day!\"";
$unquotedString = preg_replace('/[\'"]/', '', $quotedString);
echo $unquotedString;

For JSON-data kan du bruke json_encode() med alternativer som JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE for å unngå ekstra skråstreker i anførselstegnene dine.

Når du implementerer, tenk på kanttilfeller. Hva om strengen din er ment å ha visse anførselstegn, som dialog i en historie eller tommer i målinger? Kontekst betyr noe, så skreddersy fjerningen av anførselstegn til dataens tiltenkte bruk.

Se også