Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.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中捕获XML_Php_Html_Xml - Fatal编程技术网

如何在PHP中捕获XML

如何在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

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

以下是我的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')");

?>
我收到了发送到电信的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而不是电话号码