繁体   English   中英

从API服务上的PHP脚本调用远程PHP脚本

[英]Calling remote PHP script from a PHP script on an API service

我正在设计一个PHP API,我给我的用户一个php文件(core.php)添加到他们的服务器上。 然后使用它们只需要include_once('api / core.php')。 在core.php里面我需要创建一些只从我的主服务器解析json文件的函数。

让我们说他们需要一个完整的用户列表,所以他们必须做类似的事情:

include_once('api/core.php');
print_r(myApi_list('user','all'));

core.php里面,函数将是这样的:

function myApi_list($pa, $pb) {
  if($pa == 'user') {
    //here will be a code that call my server
    return resp;
  } 
  //more stuf
}

当然,我的服务器上还会有另一个脚本来处理sql查询和安全性。 我的问题是,如果我使用file_get_contents,从core.php调用我的服务器的最佳方法是什么? 并告诉我的服务器脚本回答可能是一个json文件(然后core.php解析那个)? 或者我应该使用cUrl? 由于这是一个API,我更喜欢在php服务器上使用更可能默认处于活动状态的模块。

您认为在这种情况下最好的方法是什么?

如果你回来的只是JSON,请使用file_get_contents() 它更容易,编码时间更短。 只需将主服务器上脚本的标题设置为header('Content-type: text/json'); ,然后使用file_get_contents()并解析该响应。

如果响应为空,则存在无效的api请求(或者该查询没有数据,可以通过返回“未找到数据”来捕获)。 如果响应的解析为null ,则服务器上存在错误。

我的推荐是cURL。

函数file_get_contents的使用本身非常有限。 它只能返回数据或false。

另一方面,cURL有很多选择。 所以你可以制作干净错误消息出错,404 api停业,500服务器停机等。此外cURL有选择使用POST值,file_get_contents没有。

另外file_get_contents有allow_url_foppen的限制(可以禁用用于外部地址的函数),请参阅此问题 (这也建议使用cURL over file get contents

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM