看着zend的教程,稍微修改了一下,达到了基本的效果,对于php还是初学,REST概念也比较陌生,实在是赶鸭子上架,没办法了。并且在leo的建议下,最后获得xml的呈现放在了ff下,原来在safari下效果一直有问题。
下面是通过基于REST的方法,从client调用server的函数,返回的xml的运行例子。
下面是client的代码,基于zend的例子,不过有修改,后面的server端代码同样有修改。
1 2 3 4 5 6 7 8 9 10 | <?php /** * Connect to server and retrieve a greeting */ header("content-type: text/xml"); require_once 'Zend/Rest/Client.php'; $client = new Zend_Rest_Client('http://127.0.0.1/~yijun/Rest_Server.php'); echo $client->sayHello('Leo', 'Day')->get(); |
其中header这里是强制显示为xml,便于调试,实际应用中不需要。
server端代码如下,用两个方法,一个是sayHi,比较简单,返回一句话,另外一个就是上面的效果,sayHello返回一个程序处理过的xml。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | <?php require_once 'Zend/Rest/Server.php'; /** * Say Hello * * @param string $who * @param string $when * @return SimpleXMLElement */ function sayHi($who, $when) { return "Hello $who, Good $when"; } function sayHello($who, $when) { $xml ='<?xml version="1.0" encoding="ISO-8859-1"?><mysite><value>Hey '.$who.'! Hope you re having a good '.$when.'</value><code>200</code></mysite>'; // $xml = simplexml_load_string($xml); return $xml; } $server = new Zend_Rest_Server(); $server->addFunction('sayHi'); $server->addFunction('sayHello'); $server->handle(); |
其中的simplexml这里我调试始终有问题,所以才在client这里强制用xml显示,可能php这里安装有问题。在server代码这里把这个转换屏蔽了,这里只是一个例子,实际应用还是需要打开的。在做后面真实应用的时候我会检查一下到底是什么原因导致这个函数失效。


Recent Comments