小心使用SOAP_FUNCTIONS_ALL,因为它会将所有可用的PHP函数添加到您的服务器。
这可能是一个潜在的安全威胁,想象一下客户端这样做
echo $client->file_get_contents("c:\\my files\\my_passwords.doc");
瞧,他们获得了您的文件my_passwords.doc的内容。
(PHP 5, PHP 7, PHP 8)
SoapServer::addFunction — 添加一个或多个函数来处理SOAP请求
functions
要导出一个函数,请将函数名作为字符串传递给此参数。
要导出多个函数,请传递一个函数名数组。
要导出所有函数,请传递一个特殊的常量SOAP_FUNCTIONS_ALL
。
注意:
functions
必须按照WSDL文件中定义的顺序接收所有输入参数(它们不应该接收任何输出参数作为参数),并返回一个或多个值。要返回多个值,它们必须返回一个包含命名输出参数的数组。
不返回值。
示例 #1 SoapServer::addFunction() 例子
<?php
function echoString($inputString)
{
return $inputString;
}
$server->addFunction("echoString");
function echoTwoStrings($inputString1, $inputString2)
{
return array("outputString1" => $inputString1,
"outputString2" => $inputString2);
}
$server->addFunction(array("echoString", "echoTwoStrings"));
$server->addFunction(SOAP_FUNCTIONS_ALL);
?>
小心使用SOAP_FUNCTIONS_ALL,因为它会将所有可用的PHP函数添加到您的服务器。
这可能是一个潜在的安全威胁,想象一下客户端这样做
echo $client->file_get_contents("c:\\my files\\my_passwords.doc");
瞧,他们获得了您的文件my_passwords.doc的内容。