RCPpingスクリプトを作成しています。pingを実行したときに得られる応答は次のようになります。
<?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>
XML応答を読み取り、ユーザーにメッセージを書き込みたい。ただし、これを行うには、応答をオブジェクトに変換する必要があります(私は思います)。
私のスクリプト:
$context = stream_context_create(array('http' => array(
'method' => "POST",
'header' => "Content-Type: text/xml\r\n",
'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>';
}
私のエラー:
注意:556行目のC:\ Users \ usr \ wamp64 \ www \ Fitnesslife \ blog \ my_blog_ping.phpで非オブジェクトのプロパティ 'params'を取得しようとしています
注意:556行目のC:\ Users \ usr \ wamp64 \ www \ Fitnesslife \ blog \ my_blog_ping.phpで非オブジェクトのプロパティ 'param'を取得しようとしています
注意:556行目のC:\ Users \ usr \ wamp64 \ www \ Fitnesslife \ blog \ my_blog_ping.phpで非オブジェクトのプロパティ 'value'を取得しようとしています
注意:556行目のC:\ Users \ usr \ wamp64 \ www \ Fitnesslife \ blog \ my_blog_ping.phpで非オブジェクトのプロパティ「struct」を取得しようとしています
注意:556行目のC:\ Users \ usr \ wamp64 \ www \ Fitnesslife \ blog \ my_blog_ping.phpで非オブジェクトのプロパティ 'member'を取得しようとしています
警告:556行目のC:\ Users \ usr \ wamp64 \ www \ Fitnesslife \ blog \ my_blog_ping.phpのforeach()に無効な引数が指定されました
file_get_contents()
XMLオブジェクトではなく、文字列を返します。
次のようにして、XMLオブジェクトに変換できますsimplexml_load_string()
。
$xmlfile = simplexml_load_string($file);
もう1つのアプローチはSimpleXMLElement()
、コンテンツを取得するときにコンストラクターを使用することです。
$xmlfile = new SimpleXMLElement(file_get_contents("https://rpc.twingly.com/", false, $context));
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加