📜  如何在 php 中请求用户输入(1)

📅  最后修改于: 2023-12-03 15:08:44.374000             🧑  作者: Mango

如何在 PHP 中请求用户输入

在 PHP 中,要想向用户请求输入,有多种方法可供选择。以下是其中一些常见的方法。

1. 使用 readline()

readline() 函数可以让你从标准输入(通常是终端)中读取一行用户输入。例如:

<?php

$input = readline("请输入你的名字:");
echo "你好,$input!\n";

?>

这段代码就会向用户请求输入名字,并在终端中显示一个提示符(“请输入你的名字:”),等待用户输入。用户输入的内容会被保存到 $input 变量中,并通过 echo 语句输出。

请注意,readline() 函数只在 PHP 7.4 及以上版本中可用。如果你的 PHP 版本较旧,你可以考虑使用其他方法。

2. 使用 fgets()

fgets() 函数可以从一个打开的文件指针中读取一行。如果你将标准输入(即 stdin)作为文件指针打开,则可以使用 fgets() 获取用户输入。例如:

<?php

$fp = fopen("php://stdin", "r");
$input = fgets($fp);
echo "你输入了:$input\n";

?>

在这个例子中,我们先调用 fopen() 函数将标准输入打开为一个文件指针,打开模式为只读("r")。然后使用 fgets() 函数从这个文件指针中读取一行用户输入,并将其保存到 $input 变量中。最后,使用 echo 输出用户输入的内容。

3. 使用 fgets() 结合 fgets(STDIN)

对于使用 PHP CLI(命令行界面)的用户来说,还有一个更简单的方法,那就是通过 fgets(STDIN) 直接从标准输入中读取一行。例如:

<?php

$input = fgets(STDIN);
echo "你输入了:$input\n";

?>

在这个例子中,我们没有调用 fopen() 函数打开文件指针,而是直接使用了内置的 STDIN 常量,并将其作为参数传递给 fgets() 函数。这样可以更方便地从标准输入中获取用户输入。

4. 使用 HTML 表单提交

如果你写的是 Web 应用程序,那么可以使用 HTML 表单来请求用户输入。例如:

<form method="post" action="process.php">
  <label for="name">请输入你的名字:</label>
  <input type="text" name="name" id="name">
  <input type="submit" value="提交">
</form>

这个表单将包含一个文本框,用户可以输入他们的名字。当用户单击提交按钮时,表单数据将被发送到 process.php 脚本中,你可以在脚本中使用 $_POST 变量来获取用户输入的值。例如:

<?php

if ($_SERVER["REQUEST_METHOD"] == "POST") {
  $name = $_POST["name"];
  echo "你好,$name!";
}

?>

这个脚本首先检查 HTTP 请求的方法是否为 POST,如果是,就从 $_POST 变量中获取输入的名字,然后使用 echo 输出。您还可以设置一个 method="get" 的表单去处理 GET 请求。

总结

请求用户输入是编写任何交互式 Web 或 CLI 应用程序的关键部分。本文介绍了在 PHP 中请求用户输入的一些方法,包括 readline()fgets()fgets(STDIN)、以及 HTML 表单提交。使用这些方法,您可以轻松地从用户那里获取输入,并在您的代码中加以利用。