如何在PHP

时间:2018-03-22 05:59:28

标签: php html xml

我正在使用sms网关,即sms4connect。短信发送成功。现在的问题是我想保存短信发送结果到我的表中,然后获取结果。

这是我的php代码:

<?php

$num = "92xxxxxxxxxx";
$mes = "Hello World (&) and a 5 note"; 

// Configuration variables 
$type = "xml"; 
$id = "myid"; 
$pass = "mypass"; 
$lang = "English"; 
$mask = "mymask"; 

// Data for text message 
$to = $num ; 
$message = $mes; 
$message = urlencode($message);   

// Prepare data for POST request
 $data = "id=".$id."&pass=".$pass."&msg=".$message."&to=".$to."&lang=".$lang."&mask=".$mask."&type=".$type;   

 // Send the POST request with cURL 
 $ch = curl_init('http://www.sms4connect.com/api/sendsms.php/sendsms/url'); 
 curl_setopt($ch, CURLOPT_POST, true); 
 curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
 $result = curl_exec($ch); //This is the result from SMS4CONNECT curl_close($ch);
 echo $result;
$query = mysql_query("INSERT INTO sms_response (phone, msg) values('$to','$result')");

?>

我收到消息&#34;(300成功消息发送到电信.239133150)&#34;。我想将此消息针对每个数字保存到我的数据库表中。正如您在我的PHP代码中看到的那样,我在sms_response表中插入$ to,$ result值,而不是保存数字和消息,我在表格中显示这些值,如图所示。 enter image description here

那么如何正确地将消息和电话保存到我的表中。帮助将是非常值得的。

1 个答案:

答案 0 :(得分:1)

您可以通过此脚本

创建XML对象
$xml=simplexml_load_string($result) or die("Error: Cannot create object");
print_r($xml);

在$ xml中,您将获得从sms网关获取的所有数据。您可以在DB中检索和保存。

simplexml_load_string它从给定的XML字符串创建XML对象。

如果您在XML中的节点中获得成功消息,则可以只检索

之类的数据
$successMessage = $xml->message;

在db列中保存此$successMessage消息。请将消息替换为XML响应中的相关字段。这只是一个例子。

更新

要存储电话号码和消息,您可以将其连接起来,如

$successMessage = $num.": ".$xml->message; 

这只是一个例子。您可以以任何格式连接它们。在检索邮件时,如果您想从邮件中获取电话号码,则可以通过&#34;来爆炸字符串:&#34;

$msg = explode(":",$message_column);
echo $msg[0]; //phone number
echo $msg[1]; //message