instasent/sms-counter-php

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.

Maintainers

πŸ‘ markitosgv

Package info

github.com/instasent/sms-counter-php

Homepage

pkg:composer/instasent/sms-counter-php

Statistics

Installs: 1 423 877

Dependents: 5

Suggesters: 0

Stars: 49

Open Issues: 7

0.5.2 2019-06-06 08:16 UTC

Requires

  • php: >=5.6.0

Requires (Dev)

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT a0f017d6fa776a33e18a4e36257fb5d6453897ef

smsmobileunicodecountergsm

This package is auto-updated.

Last update: 2026-06-07 00:21:46 UTC


README

Character counter for SMS Messages

πŸ‘ Build Status
πŸ‘ SensioLabsInsight

Usage

use Instasent\SMSCounter\SMSCounter;

$smsCounter = new SMSCounter();
$smsCounter->count('some-string-to-be-counted');
$smsCounter->countWithShiftTables('some-string-to-be-counted');

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)

Sanitization

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

Installation

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

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

License

SMS Counter (PHP) is released under the MIT License

Mentions