I'm creating a RCP ping script. The response I get when I ping looks like this:
<?xml version="1.0" ?>
<methodResponse>
<params>
<param>
<value>
<struct>
<member>
<name>flerror</name>
<value>
<boolean>0</boolean>
</value>
</member>
<member>
<name>message</name>
<value>
<string>Thanks for the ping.</string>
</value>
</member>
</struct>
</value>
</param>
</params>
</methodResponse>
I want to read the XML response and write the message to the user. However to do this I need to convert the response into a object (I think).
My script:
$context = stream_context_create(array('http' => array(
'method' => "POST",
'header' => "Content-Type: text/xml
",
'content' => $xml
)));
$file = @file_get_contents("https://rpc.twingly.com/", false, $context);
if ($file === false) {
echo '<p>Could not connect!</p>';
}
elseif ($file) {
echo '<p>The following response was returned:</p>';
echo '<pre>'.htmlspecialchars($file).'</pre>';
$i = 0;
foreach ($file->params->param->value->struct->member as $object){
$name[$i] = $object->name;
$value[$i] = $object->value;
echo"
<p>Name: $name[$i]<br />
Name: $value[$i]</p>
";
$i++;
}
}
else {
echo '<p>Empty response!</p>';
}
My error:
Notice: Trying to get property 'params' of non-object in C:\Users\usr\wamp64\www\fitnesslife\blog\my_blog_ping.php on line 556
Notice: Trying to get property 'param' of non-object in C:\Users\usr\wamp64\www\fitnesslife\blog\my_blog_ping.php on line 556
Notice: Trying to get property 'value' of non-object in C:\Users\usr\wamp64\www\fitnesslife\blog\my_blog_ping.php on line 556
Notice: Trying to get property 'struct' of non-object in C:\Users\usr\wamp64\www\fitnesslife\blog\my_blog_ping.php on line 556
Notice: Trying to get property 'member' of non-object in C:\Users\usr\wamp64\www\fitnesslife\blog\my_blog_ping.php on line 556
Warning: Invalid argument supplied for foreach() in C:\Users\usr\wamp64\www\fitnesslife\blog\my_blog_ping.php on line 556