如何读取/获取短信正文的内容?

How do I read / get contents of a text message body?

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

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

这是一个示例,我将通过 POST 方法在我的 Web 服务器中接收到的内容:

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

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

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

请帮忙!

试试这个代码,使用 explode 函数以 space 作为分隔符,然后确保展开的消息(数组)包含 4 key/value.

    $cmd = '';
    $op = '';
    $no = '';
    $amt = '';

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

你可以试试这个。

$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"

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

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

请试试这个代码:

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

你可以测试一下。