addcslashes / stripcslashes în PHP

Pune bare inverse în stilul limbajului C înaintea caracterelor alese; stripcslashes le interpretează înapoi.

Sintaxă
addcslashes(string $string, string $characters): string

Ce face addcslashes / stripcslashes

addcslashes pune \ înaintea fiecărui caracter din lista $characters. Caracterele invizibile sunt scrise ca secvențe C: linia nouă devine \n, tab-ul \t, iar altele devin coduri octale ca \000. Poți da intervale: "\0..\37" înseamnă toate caracterele de control.

stripcslashes face inversul: transformă secvențele \n, \t, \x41, \101 în caracterele reale și elimină celelalte bare inverse.

Parametri

Parametru Descriere
$string Textul prelucrat.
$characters Doar la addcslashes: caracterele de protejat, eventual ca interval a..z.

Ce returnează

Textul cu barele adăugate (respectiv interpretate).

Exemple

Exemplul 1: Caractere invizibile făcute vizibile

<?php
$text = "Linia 1\nLinia 2\tcu tab";

echo addcslashes($text, "\0..\37");

Rezultat

Linia 1\nLinia 2\tcu tab

Exemplul 2: Interpretarea secvențelor cu stripcslashes

Textul este scris între ghilimele simple, deci conține literal barele inverse. stripcslashes le transformă în tab, litera A (cod hexazecimal 41) și linie nouă.

<?php
$text = 'Nume:\tAna\nCod:\t\x41\x42';

echo stripcslashes($text);

Rezultat

Nume:	Ana
Cod:	AB

Greșeli frecvente

  • Dai un interval greșit, de exemplu "z..a" (invers). PHP îl tratează ca pe trei caractere separate și afișează un avertisment.

Comenzi înrudite

  • addslashes / stripslashes: Pune o bară inversă (\) înaintea ghilimelelor și a barelor inverse. stripslashes face operația inversă.
  • quotemeta: Pune o bară inversă înaintea caracterelor . \ + * ? [ ^ ] $ ( ).
  • json_encode: Transformă un tablou sau obiect PHP în text JSON.