如何用CURL调用PHP的特定方法


How to call specific method of PHP with CURL

我正在开发一个API。在这个API中,我需要修改一些已经被选中的用户数据。。(基本上更新dosomething.php页面中的方法)。

所以我知道PUT方法。。但是我有不止一种用户更新的方法。。

所以我的问题是如何让我的dosomething.php页面了解curl正在调用哪个更新方法。

我的卷曲url是

http://localhost/apitest/dosomething.php

我应该从curl请求中获取数据,然后在dosomething.php页面中使用切换用例吗?帮助我,这是正确的做法。


现在由丹尼尔A.怀特说我能这样做吗我的卷曲urlhttp://localhost/apitest/dosomething.php?method=updatemobileno

然后在php中获取这个变量值,并使用它来选择我的特定方法??

您不能使用GET/POST/PUTHTTP请求直接调用PHP方法。您需要调用PHP脚本,然后根据需要路由到适当的方法。

因此,您可以调用curl这样的东西:

$ 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();
    }
?>

好吧,我有一个模糊的想法,但不建议使用这个(请有人?)。
考虑
的卷曲帖子请求

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'])
}