addslashes / stripslashes în PHP

Pune o bară inversă (\) înaintea ghilimelelor și a barelor inverse. stripslashes face operația inversă.

Sintaxă
addslashes(string $string): string

Ce face addslashes / stripslashes

addslashes adaugă \ înaintea caracterelor ', ", \ și a caracterului NUL. stripslashes elimină aceste bare și readuce textul la forma inițială.

Le întâlnești în cod vechi sau la date venite cu bare în plus. Pentru interogări SQL nu sunt o protecție suficientă: folosește interogări pregătite (PDO prepare).

Parametri

Parametru Descriere
$string Textul prelucrat.

Ce returnează

Textul cu bare inverse adăugate (respectiv eliminate, la stripslashes).

Exemple

Exemplul 1: Adăugarea și eliminarea barelor

<?php
$nume = "Restaurantul \"La Ion\" din Iași";

$protejat = addslashes($nume);
echo $protejat . "\n";
echo stripslashes($protejat);

Rezultat

Restaurantul \"La Ion\" din Iași
Restaurantul "La Ion" din Iași

Exemplul 2: Curățarea unui text cu bare în plus

<?php
$primit = "O\\'Brien a scris: \\\"Salut\\\"";

echo stripslashes($primit);

Rezultat

O'Brien a scris: "Salut"

Greșeli frecvente

  • Construiești interogări SQL cu addslashes. Nu protejează în toate cazurile (de exemplu la anumite codări). Folosește interogări pregătite cu parametri.
  • Aplici stripslashes pe un text care nu avea bare adăugate și pierzi barele inverse reale, de exemplu dintr-o cale Windows.

Comenzi înrudite

  • htmlspecialchars: Transformă caracterele speciale HTML în entități, ca textul să fie afișat în siguranță în pagină.
  • str_replace: Înlocuiește toate aparițiile unui text cu alt text.
  • preg_quote: Pune o bară inversă înaintea caracterelor speciale, ca un text să poată fi folosit în siguranță într-o expresie regulată.