在API

时间:2016-10-20 01:30:15

标签: php curl

我有一个页面,其中它将作为连接到我的API.php的for。 在这个页面中,我使用了Curl PUT动词并传递了URL和我需要传递的数据,这是数组的形式。

我尝试在API方面捕获响应,但无济于事。

这是我的代码。

他们需要填充的网址,或者我认为这是API

http://localhost/sample/index.php/2/users/mil/milastname/09876543212

图例:

示例 - 是我存储index.php

的文件夹

2 - 是行动。在这种情况下,2代表PUT动词。

用户 - 是我要更新的数据库中的表。

mil - 是我的名字

milastname - 是我的姓氏

09876543212 - 是我的手机

我的表格

的index.php

$request = explode('/', trim($_SERVER['PATH_INFO'],'/'));


if ($request[0] == 2) {
$data = array(
  "table" => $request[1],
  "fname" => $request[2],
  "lname" => $request[3],
  "cntct" => $request[4]
);

$url_send ="http://localhost/api.php";
$str_data = json_encode($data);
$post_elements = array('data'=>$data);

if ($request[0] == 2) {
  put($url_send, $post_elements);
  echo put($url_send, $post_elements);
}


function put($url, $fields)
{

$ch = curl_init($url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");

curl_setopt( $ch, CURLOPT_POSTFIELDS, http_build_query($fields));

echo curl_setopt( $ch, CURLOPT_POSTFIELDS, http_build_query($fields));

$response = curl_exec($ch);

curl_close ($ch);

return $response;
}

这是我的API.php

if ($method == 'PUT') {
$data = preg_replace('/[^a-z0-9_]+/i','',array_shift($_POST));
echo $data;
die();
}

switch ($method) {
case 'PUT':
  $sql = "update `$table` set $set where id=$key"; break;
case 'POST':
  $sql = "insert into `$table` (user_fname, user_lname, user_contact) values ('$fname', '$lname', '$cntct')"; break;
case 'DELETE':
  $sql = "delete `$table` where id=$key"; break;
}

$result = mysqli_query($link,$sql);

if ($method == 'PUT')

部分

我尝试插入一个echo和一个die来停止进程,我可以看到数组所以我可以在我的方法案例更新中安排更新查询。但它没有返回任何结果。

感谢您的帮助和遗憾。需要详细说明,以便我能清楚地解释我的问题。

感谢。

0 个答案:

没有答案