我正在重建的网站使用自己的 API 来收集大部分内容(例如 http://api.example.com/ )。虽然这个问题的答案是不言自明的,但我只是想在继续之前确定一下。
据我所知,我有 2 个(可能有 3 个)选项可以通过 PHP 从 api 加载数据。
- 我可以将类加载到文档中并从类中手动收集数据(可能是最好的方法,但需要更多代码,并且如果对类进行更改,我必须更改页面和 API 文档而不是只是更改 API)
- 使用
file_get_contents('http://api.example.com/search')
。这将是最简单的方法,但它需要另一个 HTTP 请求,我认为它会稍微慢一些。 - 最后,如果这可能的话,我认为这将是最好的方法,但据我所知,我认为这是不可能的。本地读取文件并实现
$_GET
参数并获取结果。
示例
1.
// Include the mysql connections
require_once($_SERVER['DOCUMENT_ROOT'].'/scripts/php/_connections/mysql.company.php');
// Include the Classes (Company and Facebook)
require_once($_SERVER['DOCUMENT_ROOT'].'/scripts/php/_classes/class.company.php');
require_once($_SERVER['DOCUMENT_ROOT'].'/scripts/php/_classes/class.mysql.php');
require_once($_SERVER['DOCUMENT_ROOT'].'/scripts/php/_facebook/config.facebook.php');
require_once($_SERVER['DOCUMENT_ROOT'].'/scripts/php/_facebook/class.facebook.php');
// Create the objects (Company, MySQL, Memcache and Facebook)
$memcache = new memcache;
$facebook = new Facebook($facebook_config);
$mysql = new mysql($memcache);
$company = new company($_DATABASES,$_CONNECTIONS,$mysql,$memache,$facebook);
// CALL THE RELEVANT CLASS METHOD HERE
2. 类似于(忽略错误)
$API = 'http://api.example.com/search?query=test'
$data = file_get_contents(url_encode($API));
3. 不确定这是否可行,请注意我不想使用最后一种方法
$parameters = array(
'method'=>'GET',
'parameters'=>array(
'function'=>'search',
'query'=>'test'
)
);
$API = some_cool_function('/_scripts/api/2/api/api.php',$parameters);
// I DO NOT WANT TO DO THIS FOR CERTAIN REASONS:
$_GET=array(
'function'=>'search',
'query'=>'test'
);
$data = include('/_scripts/api/2/api/api.php');
最佳答案
通常我会说第一个选项 - 使用 Oauth 等,这些天在大多数 API 中都已到位,我确信一个精心包装的类设置会更容易使用。
关于php - 在页面上包含 API 的最有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9447251/