申し訳ありません、エラー全体を投稿します。基本的に私は石鹸サーバー上で実行され、素晴らしい仕事を2つの機能があります。私は第3の関数 'getk'を追加しました。他のものより複雑なことはありません。 2つのパラメータを受け入れ、配列を返します。しかし、この関数のクライアント側を呼び出すと、次のエラーが発生します。PHP SOAP関数名は文字列でなければなりませんか?
Fatal error: Uncaught SoapFault exception:
[SOAP-ENV:Server] Function name must be a string in /home/od2u/public_html/wp-content/plugins/link-monitor/link-monitor.php:33
Stack trace: #0 [internal function]: SoapClient->__call('getk', Array)
#1 /home/od2u/public_html/wp-content/plugins/link-monitor/link-monitor.php(33): SoapClient->getk('3', 'wpmu1')
#2 /home/od2u/public_html/wp-content/themes/twentyten/header.php(18): wsfKeywords('3', 'wpmu1')
#3 /home/od2u/public_html/wp-includes/theme.php(1086): require_once('/home/od2u/publ...')
#4 /home/od2u/public_html/wp-includes/theme.php(1062): load_template('/home/od2u/publ...', true)
#5 /home/od2u/public_html/wp-includes/general-template.php(34): locate_template(Array, true)
#6 /home/od2u/public_html/wp-content/themes/twentyten/index.php(16): get_header()
#7 /home/od2u/public_html/wp-includes/template-loader.php(43): include('/home/od2u/publ...')
#8 /home/od2u/public_html/wp-blog-header.php(16): require_once('/home/od2u/publ...')
#9 /home/od2u/public_html/index.php(17): require(in /home/od2u/public_html/wp-content/plugins/link-monitor/link-monitor.php on line 33
私はこれを並べ替える方法についてのアドバイスをどこでも見てきました。関数は存在しますが、ドル記号のような愚かなものでも、かっこのタイプが間違っているものでもありません。
また、WSDLサーバーとクライアント側のキャッシュをクリアして無効にしました。
クライアント側のコール:
$c->getk($site, $server);
$ cは、SOAPクライアントとgetkは関数名です。
機能サーバ側:
function getk($website, $server)
{
$ret_array('blah', 'blah2', 'blah3');
return $ret_array;
}
そして、これは使用してSOAPサーバーに追加されます。
$server->addFunction(array("getk", "getLinks", "getDirectLinks"));
は、あなたたちは私が思う:)
inbuilt ['SoapServer'](http://us2.php.net/manual/en/class.soapserver.php)クラスを使用している限り理論的にはうまくいくはずです。しかし、 'getk'関数定義に構文エラーがあります。 '$ ret_array = array( 'blah'、 'blah2'、 'blah3');' ... – ircmaxell
これはそれほど遠くにはありません。重要ではない。笑、おかげで、愚かなエラー。 –