Character counter for SMS Messages
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
)
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
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
- Original idea : danxexe/sms-counter
- Fork Idea from: acpmasquerade/sms-counter-php