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 區塊有使用範例(註解):
呵呵~
純粹路過看到這篇文章
一年前我也遇到跟你相同的問題,當初我是用php4,後來的解法跟你一樣 ~ 因此看到您的文章不禁會心一笑 = =
不知道是我們有錯還是別人有錯 呵
哈.. XD
XML-RPC 在 php.net 的 document 看起來像是被遺棄的小孩一樣.. Orz..
正在自学PHP,自写PHP BLOG,看到这文章很开心,谢谢,我要试试这个XML-RPC,看能不能自动ping google的服务端呢
呵呵, 加油~ 🙂
雖然是07年的,現正需要使用
謝謝=)
您好,我要實作一個php web service,
透過此介面,我要將廠商給的function及xml資料存回本端資料表,
請問要如何完成嗎?
..... 就把廠商的資料, 直接存入 DB... 就好了阿.