Анализ длины смс сообщения на PHP
Максимальная длина смс сообщения - это 480 символов. СМС сообщение обычно составлено в одном из двух форматов: 7bit (английский текст и большинство символов) и Unicode (в том числе и кириллица). Смс сообщение состоит из одного или нескольких SMS. Поэтому, если вы отправляете сообщения в латинице, то у вас больше запас по длине сообщения по сравнению с кириллицей. Длина смс сообщения может увеличить количество составных частей, если в сообщение попадет хотя бы одна буква русского алфавита. Более подробные цифры можно посмотреть в таблице.
Частей смс |
Кириллица |
Латиница |
---|---|---|
1 | 70 | 134 |
2 | 134 | 306 |
3 | 201 | 459 |
4 | 268 | 612 |
Иногда при интеграции смс сервисов в бизнес-процессы компании необходимо отлеживать из скольких частей состоит смс сообщение. Для этого вы можете воспользоваться скриптом представленным ниже. Данный скрипт возвращает переменной $smscount количество частей переменной $text.
<?php //текст смс $text = "Текст sms"; // шаблон $pattern = '/[а-яА-Я]+/'; //проверка на кириллицу preg_match($pattern, $text, $matches); //константы длины $rusLimits = array(70, 67); $engLimits = array(160, 153); //длина строки $len=strlen($text); //кириллица if ( sizeof($matches) > 0 ) { if ($len<=$rusLimits[0]) { $smscount=1; } else { $smscount=ceil($len/$rusLimits[1]); } } else //латиница { if ($len<=$engLimits[0]) { $smscount=1; } else { $smscount=ceil($len/$engLimits[1]); } } //выводим echo $text." - содержит смс: "; echo $smscount; ?>