2

フォームから値を送信してから、送信された関数、私のコードを呼び出すことができるようにしたい:

<?php
include 'specs.php';
if (empty($_POST) === false) {
$func = $_POST['function'];
$a1 = $_POST['a1'];
$a2 = $_POST['a2'];
$a3 = $_POST['a3'];
$a4 = $_POST['a4'];
$a5 = $_POST['a5'];
echo $func.'('$a1', '$a2', '$a3', '$a4', '$a5');';
}
?>
<form action="" method="post">
Function:<br><input type="text" name="function"><hr>
Value 1: <input type="text" name="a1">
Value 2: <input type="text" name="a2">
Value 3: <input type="text" name="a3">
Value 4: <input type="text" name="a4">
Value 5: <input type="text" name="a5">
<input type="submit" value="Execute">
4

4 に答える 4

4

使用できますcall_user_func_array

call_user_func_array ( 'thefuncname' , your_parameters )

あなたの場合、それは次のようになります:

$func = $_POST['function'];
$parameters = array($a1, $a2, $a3, $a4, $a5);
call_user_func_array ( $func, $pameters);
于 2013-04-26T02:16:55.933 に答える
1

あるいは単にecho $func(array($a1, $a2, $a3, $a4, $a5));

(おそらく、配列が必要ないので、単に置くことができます$func($a1, $a2, $a3, etc);)

于 2013-04-26T02:19:30.880 に答える
0

交換

echo $func.'('$a1', '$a2', '$a3', '$a4', '$a5');';

call_user_func_array($func, array($a1,$a2,$a3,$a4,$a5));
于 2013-04-26T02:18:43.153 に答える
0
//suggust add some prefix on func ,then check function_exists
$func = 'auto_'.$_POST['function'];
if (function_exists( $func)) {
 $func(array($a1, $a2, $a3, $a4, $a5));
}
于 2013-04-26T03:19:16.680 に答える