【问题标题】:How do I read / get contents of a text message body?如何阅读/获取短信正文的内容?
【发布时间】:2017-04-14 07:44:45
【问题描述】:

我将使用 SMS 到 Web 服务器,它将传入的文本消息转发到我的 Web 服务器。

消息正文将包含一些短代码、一个手机号码和一个格式的金额。我需要将详细信息分别存储到变量中。

这是一个示例,我将通过 POST 方法在我的网络服务器中收到:

$sender = "9999912345";
$date = "2017-04-14 13:04:40";
$message = "RCG ARTL 9700012345 50";

我需要将$message的内容单独存储到变量中:

$cmd = "RCG";
$op = "ARTL";
$no = "9700012345";
$amt = "50";

请帮忙!

【问题讨论】:

    标签: php sms messages sms-gateway


    【解决方案1】:

    请试试这个代码:

    $message = "RCG ARTL 9700012345 50";
    $arr = explode(" ", $message);
    $cmd = $arr[0];
    $op = $arr[1];
    $no = $arr[2];
    $amt = $arr[3];
    

    【讨论】:

    • 谢谢!您的回答符合我的要求!
    【解决方案2】:
    <?php
        $message = "RCG ARTL 9700012345 50";
        list($cmd, $op, $no, $amt) = explode(" ",$message);
    

    你可以测试一下。

    【讨论】:

    • 谢谢!您的回答符合我的要求!
    【解决方案3】:

    试试这个代码,使用explode函数以空格作为分隔符,然后确保分解的消息(一个数组)包含4个键/值。

        $cmd = '';
        $op = '';
        $no = '';
        $amt = '';
    
        $explodedMessage = explode(' ', $message);
        if (count($explodedMessage)==4){
            $cmd.=$explodedMessage[0];
            $op.=$explodedMessage[1];
            $no.=$explodedMessage[2];
            $amt.=$explodedMessage[3];
        } 
    

    【讨论】:

    • 谢谢!您的回答符合我的要求!
    【解决方案4】:

    你可以试试这个。

    $message = "RCG ARTL 9700012345 50";
    
    list($cmd, $op, $no, $amount) = explode(' ', $message);
    
    var_dump($cmd, $op, $no, $amount);
    

    输出:

    string(3) "RCG"
    string(4) "ARTL"
    string(10) "9700012345"
    string(2) "50"
    

    【讨论】:

    • 谢谢!您的回答符合我的要求!
    【解决方案5】:

    您可以使用explode 函数将$message 转换为一个数组,其中分隔符将是一个空格。然后可以按照您想要的方式访问它。

    $message = "RCG ARTL 9700012345 50";
    $messageArray = explode(" ", $message);
    $someText = $messageArray[0];
    

    【讨论】:

    • 感谢您的解释!
    猜你喜欢
    • 2012-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-28
    • 2021-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多