我有一个wsdl文件,我试图从php类调用它。我使用以下代码:
<?php
include(“dbconn.php”);
类dataclass {
function getCountries()
{
$connection = new dbconn();
$sql = "SELECT * FROM tblcountries";
$dataset = $connection -> connectSql($sql);
return $dataset;
}
function getTest()
{
$connection = new dbconn();
$sql = mysql_query('CALL sp_getTest');
$dataset = $connection -> connectSql($sql);
return $dataset;
}
##-------------------------------------------CUSTOMER METHODS-------------------------------------------
function registerCustomer($username,$name,$surname,$password,$email,$country,$tel)
{
$connection = new dbconn();
$sql="INSERT INTO tblcustomer (customer_username, customer_password, customer_name, customer_surname,
customer_email, customer_country, customer_tel)
VALUES('$username','$name','$surname','$password','$email','$country','$tel')";
$dataset = $connection -> connectSql($sql);
}
ini_set("soap.wsdl_cache_enabled", "0");
// start the SOAP server - point to the wsdl file
$webservice = new SoapServer("http://localhost/dataobjects/myWebservice.wsdl", array('soap_version' => SOAP_1_2));
// publish methods
$webservice->addFunction("getCountries");
$webservice->addFunction("registerCustomer");
// publish
$webservice->handle();
} ?&GT;
始终是ini_set("soap.wsdl_cache_enabled", "0");
错误是:
Parse error: syntax error, unexpected T_STRING, expecting T_FUNCTION in C:\Program Files\xampplite\htdocs\dataobjects\dataClass.php on line 47
答案 0 :(得分:1)
我相信这是因为你在课堂上调用了ini_set()。将它放在文件的顶部或构造函数中(如果有的话)。
class dataClass
{
function registerCustomer()
{
// some stuff
}
ini_set(/*args*/); // it's illegal to put instructions in the body of the class
}
现在我看到了整件事。您可能希望在第47行之前使用结束语来关闭该类。
答案 1 :(得分:0)
你让解析器认为“0”是一个字符串,而不是一个数字,请删除引号!
修改1 如果这不起作用,您的错误必须在该行之前,请发布完整的代码以供审核。
编辑2 您提供的代码在类中运行,您在使用ini_set的行之前错过了一个方括号。
答案 2 :(得分:0)
将最后一个}移到ini_set(...)
前面顺便说一下,你说你想要调用一个Web服务,但是你正在创建一个可能被其他人调用的服务器。
要致电网络服务,请尝试以下操作:
try{
$client = new SoapClient($service, array('location' =>"http://example.org/myWebService"));
$parameter1 = new myWebServiceParameter();
$result = $client->myWebServiceFunction($parameter1);
} catch (Exception $e) {
// handle errors
}
myWebServiceParameter必须是具有相同名称的成员变量foreach WSDL消息属性的任何类。 myWebServiceFunction是Web服务方法的名称。