php readline
什么是'.php readline.'
在PHP中,readline()
函数是用于从命令行读取用户输入并将其作为字符串返回的函数。这个函数可以很方便地与脚本进行交互。但是,从PHP 7.4版本开始, readline()
函数已被弃用,因为它往往与ZTS(Zend线程安全)和低延迟IO发生冲突。
PHP Readline的替代方案
PHP7.4及更高版本不再支持readline()
函数,但仍有其他一些替代方案可供选择,如:
- .使用
readline()
的代替品readline_completion_function()
。此函数为readline提供补全函数,并在按Tab键时调用该函数,通过补全结果数组进行自动补全。.使用cli_readline()
函数。该函数是在PHP 5.1.0中引入的命令行读取函数。 .使用Symfony 的 Console Component。此组件提供了许多有用的命令行功能,包括Tab补全、颜色输出和进度条等。使用PHP Readline补全函数
补全函数是一个PHP函数,用于生成补全选项列表,以供用户在命令行上选择。可以使用readline_completion_function()
函数为readline指定补全函数。
例如,考虑一个代码片段:
function my_readline_completion($input, $index) { $options = array('apple', 'banana', 'cherry', 'date'); return $options;}readline_completion_function('my_readline_completion');$input = readline('> ');
在这个例子中,my_readline_completion
函数被指定为readline的补全函数。当用户在命令行上键入Tab
时,my_readline_completion函数将被调用,并返回一个字符串数组,其中包含用户要补全的选项。
PHP Readline的高级用法
PHP Readline不仅可以在命令行上读取用户输入,而且还可以执行以下高级操作:
- .自动补全.命令行编辑.历史记录.提示符控制.字符编码支持.多行编辑
以下是一个示例,说明如何使用PHP Readline执行自动补全操作:
$options = array('apple', 'banana', 'cherry', 'date');function my_completion($input, $index) { global $options; $matches = array(); foreach($options as $option) { if(strpos($option, $input) === 0) { $matches[] = $option; } } return $matches;}readline_completion_function('my_completion');$fruit = readline('Enter your favorite fruit: ');echo 'You chose ' . $fruit . '.';
在这个例子中,my_completion()
函数被指定为readline的补全函数,可以根据变量$ option中指定的字符串自动补全用户输入。在用 readlines ()
函数提示用户输入他们最喜欢的水果后,读取该输入并输出结果。
结论
在使用PHP编程时,与脚本进行交互往往需要从命令行读取用户输入。PHP Readline提供了一种简单而强大的方法来实现这一点,并且可以通过读取历史记录、自动补全以及命令行编辑等高级功能来使它更加灵活。
尽管PHP 7.4不再支持readline()
函数,但是仍有其他许多可用的替代方案可供选择,如还可以使用readline_completion_function()
函数执行自动补全操作,使用cli_readline()
函数执行基本命令行读取操作,或使用Symfony Console组件建立更强大的命令行环境。