poletaew / sms-segment-calculator
PHP-based tool to calculate and display SMS segmentation data for a given message body
Package info
github.com/poletaew/sms-segment-calculator
pkg:composer/poletaew/sms-segment-calculator
Requires
- php: ^8.1
- ext-intl: *
- ext-mbstring: *
Requires (Dev)
- phpunit/phpunit: ^10.1
README
A PHP library that enables you to calculate the message segments used for sending a message on the GSM network. A port of Twillio's Segment Calculator.
Usage
Installation
composer require poletaew/sms-segment-calculator
Sample usage
use Poletaew\SmsSegmentCalculator\Models\SegmentedMessage; $segmentedMessage = new SegmentedMessage('Hello World'); echo $segmentedMessage->getRealEncodingName() . PHP_EOL; // "GSM-7" echo $segmentedMessage->getSegmentsCount(); // "1"
Documentation
SegmentedMessage class
This is the main class exposed by the package
__construct($message, $encoding, $smartEncoding)
Arguments:
$message: Body of the SMS$encoding: Optional: encoding. It can beSmsEncodingenum value orauto. Default value:auto$smartEncoding: Optional: if smart encoding enabled. Default value:false
getRealEncodingName()
Returns the name of the calculated encoding for the message: GSM-7 or UCS-2
getTotalSize()
Total size of the message in bits (including User Data Header if present)
getMessageSize()
Total size of the message in bits (excluding User Data Header if present)
getSegmentsCount()
Number of segment(s)
getNonGsmCharacters()
Return an array with the non GSM-7 characters in the body. It can be used to replace character and reduce the number of segments
getNumberOfUnicodeScalars()
Number of Unicode scalars
getNumberOfCharacters()
Number of characters
Contributing
This code is open source and welcomes contributions.
The source code for the library is all contained in the src folder.
Before submitting a PR run Unit test in the directory test/Unit and make sure all tests pass.
License
Disclaimer
No warranty expressed or implied. Software is as is.