如何在PHP中编写Web服务?

时间:2010-12-23 20:49:12

标签: php web-services

我正在尝试为我在php中编写的函数编写一个简单的Web服务,我将为另一台服务器提供该函数。我从来没有做过,也不知道在哪里以及如何开始它。我试过一些网站,但在中间迷路了。有没有人知道一个简单的文档,模板,网站,例子......所以我可以快速入手?

6 个答案:

答案 0 :(得分:2)

当我开始编写自己的Web服务时,这是一个很棒的教程。 David Walsh FTW!

它使用PHP / MySQL,输出为JSON和/或XML

答案 1 :(得分:2)

您尝试过哪些资源?关于O'Reilly PHP Devcenter的Developing Web Services Using PHP上有一篇很好的文章,它非常全面且易于理解。

答案 2 :(得分:2)

您可以创建一个没有库的非常简单的JSON / JSONP API。

这是一个非常基本的示例,您将获取一个数据数组,然后JSON编码该数组并返回JSON或JSONP,具体取决于请求:

$data = array();
//....do something to prepare your data....

if(isset($_GET['callback'])) {
    $callback = preg_replace("/[^A-Za-z0-9\.]/", '', $_GET['callback']);
    header("Content-type: application/javascript");
    echo $callback . "(" . json_encode($data) . ");";
}
else{
    header("Content-type: application/json");
    echo json_encode($data); //JSON
}

答案 3 :(得分:2)

那么,本质上是一个REST服务?

基本上,你需要一个位于服务器上的脚本并等待一些东西来调用它,无论是否有输入,取决于你是否需要向其发送信息进行处理,或者它是否只返回没有过滤器的信息管他呢。处理信息看起来很像是从本地页面处理表单,因为您可能会使用cURL在GET或POST中发送请求,但如果使用$ _GET,您也可以执行类似file_get_contents(“http://www.server.com/RESTscript.php?id=23”)的操作。

当请求进入时,脚本会获取发送的信息并对其进行处理并返回信息,可能采用JSON格式,使用json_encode()/ json_decode()或XML格式,然后调用REST服务的脚本将具有该信息用它做任何你想做的事。

所以,对于一个小的,快速的,肮脏的和静态的例子:

//You would use whatever scripting to build the needed array
//Also, note that the only output on the script should be what is being returned to the caller
$requested = array('id' => 23, 'name' => 'John Smith', 'info' => 'abcdefghijklmnopqrstuvwxyz');
echo json_encode($requested);

并且调用脚本会执行以下操作:

$request = json_decode(file_get_contents("http://www.server.com/REST.php?optional=value"));

这将使$ request一个数组与$ request相同,或者它可能使它成为stdobj,不确定,忘记哪一个。无论哪种方式,易于使用。这就是所需要的,就像你可以获得的简单无用的Web服务一样。

答案 4 :(得分:1)

  

为了让您知道,它与任何其他Web应用程序一样。没有不同。处理>输入数据并打印输出结果。 - 5秒前Col. Shrapnel

1 - 接受输入 2过程输入 3 - 返回结果

1-接受输入。您的代码几乎被视为一个表单,并将信息传递给它以使用Web请求进行操作

2-过程输入 - 使用输入,但您需要提供返回结果

3-返回结果 - 吐出结果类似于从php输出html页面的方式,尽管格式就像调用系统所期望的那样(html,json等)

答案 5 :(得分:0)

这里有很多PEAR个库,其中一个可以很好地满足您的需求。