我的问题实际上是
如果我有一个类中的大部分逻辑,我将使用什么样的结构来发送 xml 作为 REST 服务的一部分。如果很明显正在请求服务,我会在我的 php 索引页面顶部调用/包含该类。
有人向我提到类方法不应该输出任何东西。那么我应该在哪里输出xml。课外?
另外我有一个问题,接收端说声明应该从文档的开头开始。
接收端在文档中只有这两行。我还没有代码来处理它,但这已经给出了一个错误。
<?php
$url='http://www.woonbel.nl/gps/setgpsloc';
$xml =simplexml_load_string(file_get_contents($url));
?>
如您所见,我从这个类发送了 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]:在 D:\Domains\tsa.nl\wwwroot\index.php 第 4 行 PHP 警告:simplexml_load_string() [function.simplexml-load-string ]: ^ 在 D:\Domains\tsa.nl\wwwroot\index.php 第 4 行