怎么创建一个能在线测试php的html网页...
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>PHP 在线测试</title>
</head>
<body>
<h1>PHP 在线测试</h1>
<form action="test.php" method="post">
<textarea name="php_code" rows="10" cols="50"></textarea><br>
<input type="submit" value="运行 PHP 代码">
</form>
</body>
</html>
test.php
的文件,该文件将接收用户提交的 PHP 代码并尝试运行。
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// 获取用户输入的 PHP 代码
$php_code = $_POST["php_code"];
// 对用户输入的代码进行简单的安全性检查,防止恶意代码
if (preg_match('/(eval|exec|shell_exec|system|passthru)/i', $php_code)) {
echo "不允许使用的函数!";
exit;
}
// 使用输出缓冲区来捕获代码的输出
ob_start();
// 尝试运行用户输入的代码
eval($php_code);
$output = ob_get_clean();
// 显示代码的输出
echo "<h2>运行结果:</h2>";
echo "<pre>";
echo $output;
echo "</pre>";
}
?>
if ($_SERVER["REQUEST_METHOD"] == "POST")
: 检查请求方法是否为 POST,确保表单已提交。$php_code = $_POST["php_code"];
:从 POST 请求中获取用户输入的 PHP 代码。preg_match('/(eval|exec|shell_exec|system|passthru)/i', $php_code)
:使用正则表达式检查用户输入的代码是否包含一些危险的函数(如 eval
、exec
等),以防止安全问题。如果包含这些函数,将显示错误信息并退出。ob_start();
:开启输出缓冲区,用于捕获后续代码执行的输出。eval($php_code);
:使用 eval
函数执行用户输入的代码。eval
函数会将输入的字符串作为 PHP 代码进行执行,但使用时要非常小心,因为可能会导致安全问题,所以我们进行了上述的安全检查。$output = ob_get_clean();
:获取输出缓冲区的内容,并清除缓冲区。
eval
函数,这个函数非常强大,但也非常危险,因为它可以执行任意的 PHP 代码。在实际应用中,应该谨慎使用,并做好严格的安全防护,防止用户输入恶意代码。
index.html
,将 PHP 代码保存为 test.php
。htdocs
目录或 Nginx 的相应的根目录中。index.html
页面,输入 PHP 代码并提交,服务器将运行该代码并显示结果。