Как вызвать функцию php с URL?

Здравствуйте, я хотел бы знать, как вызвать функцию, которую я только что написал из 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

Решение

Да, вы можете указать этот параметр для вызова вашей пользовательской функции:

$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
}
3

Другие решения

Один вариант, который вы можете сделать, если использовать 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;
}
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector