8ctopus/quoted-printable

Detect quoted printable encoding

0.1.4 2023-12-28 11:45 UTC

This package is auto-updated.

Last update: 2024-04-28 12:41:51 UTC


README

packagist downloads min php version license tests code coverage badge lines of code

Check if a text is quoted printable encoded

https://datatracker.ietf.org/doc/html/rfc2045#section-6.7

Disclaimer: While I've tried my best to implement the RFC, I cannot guarantee this library is bug free.

install

composer require 8ctopus/quoted-printable

demo

use Oct8pus\QuotedPrintable;

require_once __DIR__ . '/vendor/autoload.php';

$text = <<<TEXT
J'interdis aux marchands de vanter trop leurs marchandises. Car ils se font=
 vite p=C3=A9dagogues et t'enseignent comme but ce qui n'est par essence qu=
'un moyen, et te trompant ainsi sur la route =C3=A0 suivre les voil=C3=
=A0 bient=C3=B4t qui te d=C3=A9gradent, car si leur musique est vulgaire il=
s te fabriquent pour te la vendre une =C3=A2me vulgaire.
   =E2=80=94=E2=80=89Antoine de Saint-Exup=C3=A9ry, Citadelle (1948)
TEXT;

$quotedPrintable = new QuotedPrintable();

echo ($quotedPrintable->validateNoExceptions($text) ? 'valid quoted printable' : 'invalid quoted printable') . PHP_EOL;

Alternatively you can use the exception variant

use Oct8pus\QuotedPrintable;
use Oct8pus\QuotedPrintableException;

require_once __DIR__ . '/vendor/autoload.php';

$text = <<<TEXT
J'interdis aux marchands de vanter trop leurs marchandises. Car ils se font=
 vite p=C3=A9dagogues et t'enseignent comme but ce qui n'est par essence qu=
'un moyen, et te trompant ainsi sur la route =C3=A0 suivre les voil=C3=
=A0 bient=C3=B4t qui te d=C3=A9gradent, car si leur musique est vulgaire il=
s te fabriquent pour te la vendre une =C3=A2me vulgaire.
   =E2=80=94=E2=80=89Antoine de Saint-Exup=C3=A9ry, Citadelle (1948)
TEXT;

$quotedPrintable = new QuotedPrintable();

try {
    $quotedPrintable->validate($text);
    echo 'valid quoted printable' . PHP_EOL;
} catch (QuotedPrintableException $exception) {
    echo 'invalid quoted printable' . PHP_EOL;
}

clean code

composer fix(-risky)

phpstan

composer phpstan

phpmd

composer phpmd