如何使用URL调用php函数?
你好编号想知道如何调用我刚刚从URL写入的函数吗? 波纹管是我的PHP代码。如何使用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但它不会回显写入的代码。
请指点我正确的方向。
一种选择,你可以做,如果使用IF/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;
}
初学者应该在切换之前学习if/elseif。 – Mex
这是我寻找的方法,但我不知道如何应用它。 – learningXD
我已经为我的文章添加了switch语句的示例代码。 – Mex
是的,你可以说参数供给到主叫用户定义函数:
$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();
}
旁注:function_exists
也可以应用,以及:
if(!empty($_GET['function']) && function_exists($_GET['function'])) {
// invoke function
}
的
这是一个很好的答案...您也在阻止用户执行他们想要的任何功能。 +1 –
可能重复的[如何调用从存储在变量字符串PHP功能](http://*.com/ questions/1005857/how-to-call-php-function-from-string-stored-in-a-variable) – Keelan
但是认真重新考虑这一点。您不希望给您的访问者在代码中随机执行任何PHP函数的可能性。 – Keelan
我不知道.. – learningXD