如何用URL调用php函数?

时间:2015-04-12 12:54:43

标签: php function url call

您好我想知道如何调用我刚刚从URL写的函数? 贝娄是我的PHP代码。

<?php
require 'db.php';

function l1(){
    echo "Hello there!";
}

function l2(){
    echo "I have no Idea what Im doing!";
} 
function l3(){
    echo "I'm just a year 1 college student dont torture me sir!";
}


?>

我尝试了http://127.0.0.1/study/sf.php?function=l1,但它不会回应书面代码。

请指出正确的方向。

2 个答案:

答案 0 :(得分:3)

是的,你可以提供该参数来调用用户定义的函数:

$func = $_GET['function'];
$func();

也可以通过get_defined_functions

过滤您定义的那些
function l1(){
    echo "Hello there!";
}

function l2(){
    echo "I have no Idea what Im doing!";
} 
function l3(){
    echo "I'm just a year 1 college student dont torture me sir!";
}

$functions = $arr = get_defined_functions()['user']; // defined functions

if(!empty($_GET['function']) && in_array($_GET['function'], $functions)) {
    $func = $_GET['function'];
    $func();
}

Sample Output

旁注:function_exists也可以应用:

if(!empty($_GET['function']) && function_exists($_GET['function'])) {
    // invoke function
}

答案 1 :(得分:0)

如果使用/ elseifs就可以使用一个选项:

if($_GET['function'] == 'l1')
{
    l1();
}
else if($_GET['function'] == 'l2')
{
    l2();
}

或者您可以使用风险更高的方法并直接从输入中调用函数名称。

$functionName = $_GET['function'];
$functionName();

编辑: 或者您可以使用switch语句:

switch($_GET['function'])
{
    case 'l1':
        l1();
    break;
    case 'l2':
        l2();
    break;
    case 'l3':
        l3();
    break;
}