私の質問は実際には
クラスのロジックがほとんどオフになっている場合、REST サービスの一部として xml を送信するためにどのようなオフ構造を使用するでしょうか。サービスが要求されていることが明らかになった場合は、php インデックス ページの上部にあるクラスを呼び出す/含めます。
クラスメソッドは何も出力すべきではないと誰かが私に言いました。次に、xmlをどこに出力する必要がありますか。クラス外?
また、受信側が、ドキュメントの最初から宣言を開始する必要があると言っているという問題があります。
受信側には、ドキュメントにこれらの 2 行しかありません。まだ処理するコードはありませんが、これはすでにエラーになります。
<?php
$url='http://www.woonbel.nl/gps/setgpsloc';
$xml =simplexml_load_string(file_get_contents($url));
?>
ご覧のとおり、このクラスから xml を送信します。おそらく、ここで何か問題が発生している可能性があります。とにかく、宣言エラーを回避する方法と、xml をメソッドで実行することになっていない場合に xml を送信する方法についてアドバイスが必要です。最初にクラス変数に保存してから、多分?
<?php
class gps {
public $url;
public $test;
function __construct($url) {
$this->url = $url;
}
function invoke($methode_naam) {
switch($methode_naam){
case "test":
$this->setgpsloc();
break;
case "setgpsloc":
header('Content-type: text/xml');
$status_code = 2;
$output= "<?xml version=\"1.0\"encoding=\"utf-8\"?>\n";
$output.= "<response>\n";
$output.= "\t<status>$status_code</status>\n";
$output.= "\t<fout>Geen</fout>\n";
$output.= "</response>";
echo trim($output);
}
}//EINDE invoke
}
?>
これは、サービスが要求されているかどうかを検出してクラスを呼び出す方法です
<?php
//WEBSERVICE SECTIE
$url = $_GET['url'];
$parts = split('/', $url); // Opslaan van delen van de aangevraagde url in $parts
$cparts=count($parts);
//if($cparts>=2){
$controller = $parts[0];
$wslijst=array("gps","gebruikers");
if(in_array($controller,$wslijst)){
include $controller .".php";
$clr = new $controller("test");
$clr->invoke($parts[1]);
exit();
}
//other code underneath for displaying normal page
?>
これは、受信側が取得する実際のエラーです
PHP 警告: simplexml_load_string() [function.simplexml-load-string]: エンティティ: 4 行目: パーサー エラー: D:\Domains\tsa.nl\wwwroot\index.php のドキュメントの先頭でのみ XML 宣言が許可されています4 行目 PHP 警告: simplexml_load_string() [function.simplexml-load-string]: in D:\Domains\tsa.nl\wwwroot\index.php 4 行目 PHP 警告: simplexml_load_string() [function.simplexml-load-string ]: 4 行目の D:\Domains\tsa.nl\wwwroot\index.php 内の ^