Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 检测SMS消息需要unicode对话的字符_Php_Unicode - Fatal编程技术网

Php 检测SMS消息需要unicode对话的字符

Php 检测SMS消息需要unicode对话的字符,php,unicode,Php,Unicode,我环顾四周,找不到我问题的确切答案 基本上我有一个短信网关,我正在使用。要通过短信网关发送GSM、中文、阿拉伯语等字符,我必须以16位unicode格式发送信息 我想做的是检测消息是否需要以16位unicode格式发送,或者对于简单的英语字符只需要普通的7位格式发送。我的所有字符都存储在UTF-8中 以下是我用来检测此问题的代码: if (preg_match("/^[a-zA-Z0-9 !@#$%^&*()-_+={\[\]}|\\`<>,.\?\/]*$/u", $str

我环顾四周,找不到我问题的确切答案

基本上我有一个短信网关,我正在使用。要通过短信网关发送GSM、中文、阿拉伯语等字符,我必须以16位unicode格式发送信息

我想做的是检测消息是否需要以16位unicode格式发送,或者对于简单的英语字符只需要普通的7位格式发送。我的所有字符都存储在UTF-8中

以下是我用来检测此问题的代码:

if (preg_match("/^[a-zA-Z0-9 !@#$%^&*()-_+={\[\]}|\\`<>,.\?\/]*$/u", $string) == 1)
    return '7-bit';
else
    return '16-bit';
if(preg\u match(“/^[a-zA-Z0-9!@$%^&*()-\+={\[\]}\\\`,.\?\/]*$/u”,$string==1)
返回“7位”;
其他的
返回“16位”;
我在这里上传了一些测试用例:(只需点击Run按钮)


代码在我看来真的很混乱。我是不是走错了路?

多亏了Alix Axel,我在这里找到了答案:


为什么不
^[\x00-\x7F]*$
的可能重复项?
if (strlen($string) != strlen(utf8_decode($string)))
{
    echo 'is unicode';
}