quoted_printable_encode / quoted_printable_decode în PHP

Șiruri de caractere PHP 5.3+ (quoted_printable_decode: PHP 4+)

Codează un text în formatul quoted-printable folosit în emailuri; quoted_printable_decode îl decodează.

Sintaxă
quoted_printable_encode(string $string): string

Ce face quoted_printable_encode / quoted_printable_decode

Formatul quoted-printable lasă neschimbate literele englezești și scrie restul octeților ca =XX (cod hexazecimal). Semnul = devine =3D, iar rândurile lungi sunt rupte la 76 de caractere cu = la final.

Îl întâlnești în sursa emailurilor (Content-Transfer-Encoding: quoted-printable). quoted_printable_decode transformă textul înapoi.

Parametri

Parametru Descriere
$string Textul codat sau decodat.

Ce returnează

Textul codat (respectiv decodat).

Exemple

Exemplul 1: Codare și decodare

Litera „ă” are în UTF-8 octeții C4 83, de aceea apare ca =C4=83.

<?php
$cod = quoted_printable_encode("Comandă confirmată = 149 lei");

echo $cod . "\n";
echo quoted_printable_decode($cod);

Rezultat

Comand=C4=83 confirmat=C4=83 =3D 149 lei
Comandă confirmată = 149 lei

Greșeli frecvente

  • Decodezi doar corpul emailului și subiectul rămâne de forma =?UTF-8?Q?...?=. Subiectul are alt format; folosește mb_decode_mimeheader.

Comenzi înrudite

  • mb_encode_mimeheader / mb_decode_mimeheader: Codează un text pentru un antet de email (de exemplu subiectul cu diacritice); mb_decode_mimeheader îl decodează.
  • chunk_split: Împarte un text în bucăți de lungime fixă și pune un separator după fiecare bucată.
  • bin2hex / hex2bin: bin2hex transformă un text (sau date binare) în cifre hexazecimale, iar hex2bin face inversul.