2012-03-29 46 views
1

我正在開發一個API。在這個API中,我需要修改一些用戶數據誰已經singup ..(基本上更新方法是在dosomething.php頁)。如何使用CURL調用PHP的具體方法

,所以我知道關於有用戶更新的方法不止一種PUT method..but IM ..

所以我的問題是如何讓我的dosomething.php頁面瞭解到,該更新方法正在被稱爲捲曲。

我捲曲網址是

http://localhost/apitest/dosomething.php

我應該從捲曲請求中獲取數據並且使用切換案例在dosomething.php頁面? 幫助我,這是正確的做法。


現在由Daniel A. White說我可以這樣做 我捲曲網址 http://localhost/apitest/dosomething.php?method=updatemobileno

,比獲得PHP這個變量的值,並用它來選擇我的具體方法?

+0

你可以把一個查詢字符串就可以了這種捲曲POST請求?或看看用戶代理? – 2012-03-29 19:45:34

+0

您是否將PHP方法(函數)的HTTP方法(動詞)混淆? – cmbuckley 2012-03-29 19:47:18

回答

2

不能調用直接一個PHP方法有GET/POST/PUTHTTP請求。您需要調用PHP腳本,然後根據您的需要路由到適當的方法。

所以,你會調用捲曲像這樣的東西:

$ curl http://localhost/apitest/dosomething.php 

然後,dosomething.php將是一個PHP腳本收到您的HTTP請求,並且在它的內部,你可以調用適當的方法:

<?php 
    function f_put() { 
     // put magic here 
    } 
    function f_post() { 
     // post magic here 
    } 
    function f_get() { 
     // get magic here 
    } 


    if ($_SERVER['REQUEST_METHOD'] == 'GET') { 
     f_get(); 
    } else if if ($_SERVER['REQUEST_METHOD'] == 'POST') { 
     f_post(); 
    } else if if ($_SERVER['REQUEST_METHOD'] == 'PUT') { 
     f_put(); 
    } 

?> 
+0

thnx幫助球員... – 2012-03-30 19:47:35

+0

先生巴勃羅聖誕老人我對你的答案有疑問時更新我應該使用PUT所以現在基於你的ans我怎麼才能區分哪些更新方法調用後有這個$ _SERVER ['REQUEST_METHOD '] =='PUT',因爲我有更多的更新方法。 – 2012-03-30 19:54:21

0

嗯,我有一個模糊的想法,但不建議使用這個(請別人?) 。
考慮與

curl --data "func=fn_name&param1=value1&param2=value2" https://example.com/x.php 

現在在文件x.php

function fn1($p,$q) 
{ 
} 
function fn2($a,$b) 
{ 
} 
if($_POST['func']=="fn1") 
{ 
    fn1($_POST['param1'],$_POST['param2']) 
} 

if($_POST['func']=="fn2") 
{ 
    fn2($_POST['param1'],$_POST['param2']) 
}