2014-01-08 75 views
1

我对PHP很陌生。作为一个学习项目,我目前正在建立一个用户可以订购产品的网站。从php网站连接到php API

我不希望我的网站直接连接到数据库,但我希望该流程能够通过我制作的API。 API的结构非常简单:index.php接收调用和变量(通过post),然后根据接收到的数据类型在其中一个控制器中运行其中一个功能。

因此,问题: 如何在我的网站和我的php api(在同一台服务器上)之间建立连接以访问我的数据库?

我已经搜索了网络和SO的API连接,但大多数问题都是关于FB API和oAuth等。如果我错过了一个类似的问题,请通知我,因为那时我会删除这个问题。

任何帮助将不胜感激,先谢谢您!

+0

您应该有** TWO ** API。其中一个是通过HTTP调用远程使用的,另一个是作为PHP函数调用和本地使用的。迫使你自己的服务器的代码做一个全面的HTTP请求自己是一个可怕的资源浪费和效率非常低。 –

回答

2

听起来就像你想实现一个REST API。有大量的教程和有用的链接,你可以很容易地找到这个主题。 (Here是一个体面的起点)。还有许多可以用来自动处理RESTful交互的框架。

编辑:

一旦你有一个REST API设置,最好的方式连接,并与PHP的API进行交互使用卷曲模块。 This是在PHP中使用cURL的主题的一个很好的介绍。

从API - >客户端传递数据的当前首选结构是JSON。 PHP使JSON工作变得微不足道。在您的API中使用json_encode将PHP变量转换为JSON等效字符串。在您的客户端中,使用反函数将API中的JSON响应转换为PHP对象:json_decode

这是一个非常知名/广泛使用的技术,需要考虑更多细微差别,但这应该足够了介绍用于测试目的。一旦你理解了这些想法,我强烈建议你做一些谷歌/ stackoverflow搜索和阅读更多的主题。

+0

嗨@berrbz,谢谢你的反应!但我认为存在误解。我通常理解PHP和REST如何工作(我也是iPhone开发人员,并且有iphone应用程序与REST服务器一起工作)。但是用PHP代码做网站对我来说是新的。我所要求的只是一行/一段代码,演示了如何通过POST网站将一些变量发送到REST API。你愿意为我提供那样的善意吗? – Joris416

+0

我明白了,这样做的方法是使用cURL。阅读[这里](http://stackoverflow.com/questions/2138527/php-curl-http-post-sample-code)为一个基本的例子。确保你在PHP中启用了cURL模块! – berrberr

+0

谢谢!我今天花费在试图通过卷曲来实现这一点。我可以连接到我的API,这很好!有一个问题:我的API正在创建一个数组以返回到我的网站,但是我的网站将它作为一个简单的刺探。我像你的例子一样建立了连接。现在做了一些研究之后,我也看到人们提到'会话'来进行api沟通。这会更好吗?或者有没有办法解决卷曲问题?先谢谢你! – Joris416