This package is abandoned and no longer maintained. The author suggests using the instasent/sms-counter-php package instead.

SMS Counter PHP Class Library which detects encoding of an SMS message text, counts the characters as per the encoding and gives page limit information.

0.5.2 2019-06-06 08:16 UTC

This package is auto-updated.

Last update: 2022-02-01 12:49:29 UTC


Character counter for SMS Messages

Build Status SensioLabsInsight


use Instasent\SMSCounter\SMSCounter;

$smsCounter = new SMSCounter();

which returns

stdClass Object
[encoding]    => GSM_7BIT
[length]      => 25
[per_message] => 160
[remaining]   => 135
[messages]    => 1
UTF16 notice

When using unicode chars over U+10000 (mainly emoticons 😎) on messages larger than 70 chars the remaining value will actually be the remaining chars in last message part only, this is due to how those chars are encoded using two 16bit chars and max part length being an odd number (67)


You can sanitize your text to be a valid strict GSM 03.38 charset

use Instasent\SMSCounter\SMSCounter;

$smsCounter = new SMSCounter();
$smsCounter->sanitizeToGSM('dadáó'); //return dadao

National Language Shift Tables

Starting release 8 of GSM 03.38 some additional charsets are allowed. This is the list of such National Language Shift Tables currently supported


sms-counter-php is available via composer on packagist.

    "require": {
       "instasent/sms-counter-php": "^0.4"


SMS Counter (PHP) is released under the MIT License