如何调用不同的php文件的功能

时间:2014-02-23 14:11:01

标签: php api rest

我正在尝试实现PHP REST API。

api.php

<?php
    $path = 'api/';

    $method = $_SERVER['REQUEST_METHOD'];
    $request = substr(strstr($_SERVER['REQUEST_URI'], $path), strlen($path));

    echo $request;  
?>

在将我的所有请求重定向到api.php之后,我希望能够调用所需的函数,该函数可能位于不同的文件中。

现在,例如,AJAX请求可能看起来像'api/user/5',方法DELETE

我希望我的API能够调用user.php文件,并以DELETE$id=5作为参数。 我怎样才能做到这一点?如何执行驻留在不同文件中的代码?

3 个答案:

答案 0 :(得分:1)

简单使用包括。

例如: (假设:api / user / 5通过您的服务器转换为api.php?function = user&amp; value = 5)

api.php:

<?php
valid_functions = array("users", "others");
//so you don't have errors of file not found if someone mistypes the url;
if (in_array($_GET["function"], valid_functions)){ 
    include "{$_GET["function"]}.php";
}

user.php的:

<?php
echo "User id is {$_GET["value"]}";

答案 1 :(得分:1)

您有三种方法可以做到这一点:

  • 包含文件require('user.php') - 记得查看里面的方法!
  • 使用cURL执行它(您可能希望添加一些功能以防止其他人执行此操作
  • 使用以下参数从命令行执行:

     exec("php -q user.php $method $id")
    

要获取HTTP方法,请使用$_SERVER['REQUEST_METHOD']

答案 2 :(得分:1)

在调用函数之前包含该文件。

include 'yourFileName.php';
validateHostName('yourHostName');

您也可以使用

require_once('yourFileName.php');

可以帮助你