如何在PHP中捕获XML
我正在使用sms网关,即SMS4连接。短信发送成功。现在的问题是,我想将sms发送结果保存到我的表中,然后获取结果 以下是我的php代码:如何在PHP中捕获XML,php,html,xml,Php,Html,Xml,我正在使用sms网关,即SMS4连接。短信发送成功。现在的问题是,我想将sms发送结果保存到我的表中,然后获取结果 以下是我的php代码: <?php $num = "92xxxxxxxxxx"; $mes = "Hello World (&) and a 5 note"; // Configuration variables $type = "xml"; $id = "myid"; $pass = "mypass"; $lang = "English"; $mas
<?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')");
?>
我收到了发送到电信的300条成功消息。239133150我想根据每个数字将此消息保存到我的数据库表中。正如您在我的PHP代码中看到的,我在sms_响应表中插入了$to,$result值,但没有保存数字和消息,而是在表中获取这些值,如图所示。
那么,我怎样才能将信息和电话正确地保存到我的表中呢。帮助将非常有用。您可以通过此脚本创建XML对象
$xml=simplexml_load_string($result) or die("Error: Cannot create object");
print_r($xml);
在$xml中,您将获得从sms网关获取的所有数据。可以在数据库中检索和保存
simplexml_load_string它从给定的XML字符串创建XML对象
如果您在XML中的节点中获得了一条成功消息,那么只需检索如下所示的数据
$successMessage = $xml->message;
将此$successMessage消息保存在db列中。请在XML响应中将消息替换为相关字段。这只是一个例子
使现代化
要存储电话号码和信息,您可以像
$successMessage = $num.": ".$xml->message;
这只是一个例子。您可以用任何格式对其进行编码。在检索邮件时,如果要从邮件中获取电话号码,可以通过以下方式分解字符串:
$msg = explode(":",$message_column);
echo $msg[0]; //phone number
echo $msg[1]; //message
您能显示您的XML输出吗。不要使用不推荐使用且不安全的mysql函数。自2013年PHP 5.5以来,它们一直被弃用,并于2015年在PHP 7中被完全删除。改用MySQLi或PDO。2.您对使用上述MySQLi或PDO非常开放,应该使用而不是连接您的查询。如果您使用上述MySQLi或PDO,可以使用这些查询。您这样做是错误的。您已随身携带信息$message和电话号码$num。在成功发送SMS后,为什么不在查询中使用这些消息?如果要存储响应消息,需要先从XML响应中提取它。@Magnus Eriksson我正在将此消息300成功消息发送到Telecom。239133150,我假设这是一个xml响应。谢谢@Smit Raval。我将如何将$xml对象数据存储到我的数据库表中。谢谢老兄。还有一个问题。你能告诉我如何在留言的同时插入电话号码吗。当我在我的电话号码字段中获取交易id时,是否要将电话号码与成功消息一起存储在消息列中?是的,但我获取的是交易id而不是电话号码