XMLRPC 分成 Server 和 Client, 已有現成的 Server, 需要使用到 Client 去向 Server 要資料.
查 php.net 有 xmlrpc_encode(), 但是測試發現 xmlrpc_encode 送去的 XML 格式不符合(可能是我不會用吧!), 然後又找了下面幾個來看:
- PHP: XML-RPC for PHP - by Sourceforge
- Perl: XML::RPC - by CPAN
目的是要用是 PHP 來寫, 應該是使用 Sourceforge 的 XML-RPC for PHP
, 而且也有詳細的說明(xmlrpc_client document), 但是試了好像也是有點問題(這個應該是我不會用, 又沒有心認真學習吧 XD).
所以還是直接看看 XML-RPC Spec 比較快: XML-RPC Specification
就看了 XML-RPC Spec, 基本上就是送一個 XML Document 過去, 然後 Server 也會回傳 XML Document 回來, 只要規格符合即可, 所以就寫個 encode_xmlrpc()(為了不跟 xmlrpc_encode 函數相衝, 反過來取名), 此 function 會產生 client 需要送過去的 XML Document, 然後再利用 curl幫做 POST動作 送給 XML-RPC Server,接收回來的 XML Document再用 xmlrpc_decode() 後, 就是個很好用的 Array囉~ 🙂
程式如下, 最下面 test 區塊有使用範例(註解):