|
|
LXXXVI. GNU ReadlineIntroductie
The readline() functions implement an interface
to the GNU Readline library. These are functions that provide
editable command lines. An example being the way Bash allows you
to use the arrow keys to insert characters or scroll through
command history. Because of the interactive nature of this
library, it will be of little use for writing Web applications,
but may be useful when writing scripts meant
using PHP from the command line.
Opmerking: Deze module is niet verkrijgbaar voor de
windows versie van PHP.
Afhankelijkheden
To use the readline functions, you need to install libreadline. You can
find libreadline on the home page of the GNU Readline project, at
.
It's maintained by Chet Ramey, who's also the author of Bash.
You can also use this functions with the libedit library, a non-GPL
replacement for the readline library. The libedit library is BSD
licensend and available for download from
.
Installatie
To use this functions you must compile the CGI or CLI version of PHP
with readline support. You need to configure PHP
--with-readline[=DIR].
In order you want to use the libedit readline replacement, configure PHP
--with-libedit[=DIR].
Configuratie tijdens scriptuitvoerDeze extensie gebruikt geen configuratie regels. Resource typesDeze extensie maakt geen gebruik van resources. Voorgedefineerde constantenDeze extensie definieert geen constanten.
User Contributed Notes GNU Readline |
add a note |
twebb at boisecenter dot com
04-Mar-2002 05:11 |
|
You'll probably need the --with-readline directive when configuring php to
have the readline() functions available.
If you've installed the
readline libraries in /usr/local,
add:
--with-readline=/usr/local
to your ./configure command.
|
|
14-Apr-2002 02:17 |
|
[Ed. note: you can use fopen("php://stdin", "w") to
achieve the same thing, works on both Windows and Unix)]
I wanted
to get console input in a PHP script running on windows, so I made a
little hack, which is so simple, it is clearly public domain. What I did
was write a C++ program to get a line, then output it. Then all that is
needed is to exec() that program and capture the output - readline() for
windows. The C++ source is as follows:
#include
<iostream.h>
#include <string>
void main()
{
string input;
cin >> input;
cout <<
input;
}
It works wonderfully for my purposes, since I love
the PHP language and want to have console input.
Justin Henck
|
|
joshua at neocodesoftware.com
21-Apr-2002 10:17 |
|
Here's an example simple readline-like way to input from command line on
windows - the single line is from
the multiline is something I added...
<? function read ()
{ # 4092 max on win32 fopen
$fp=fopen("php://stdin",
"r"); $in=fgets($fp,4094); fclose($fp);
# strip
newline (PHP_OS == "WINNT") ? ($read =
str_replace("\r\n", "", $in)) : ($read =
str_replace("\n", "", $in));
return
$read; }
function multilineread () { do { $in =
read();
# test exit if ($in == ".") return
$read;
# concat input (PHP_OS == "WINNT") ? ($read
= $read . ($read ? "\r\n" : "") . $in) : ($read =
$read . "\n" . $in);
} while ($inp !=
".");
return $read; }
print("End input
with . on line by itself.\n");
print("What is your first
name?\n"); $first_name = multilineread();
print("What
is your last name?\n"); $last_name =
read();
print("\nHello, $first_name $last_name! Nice to meet
you! \n"); ?>
|
|
jewfish at jewfish dot net
10-Jun-2002 11:05 |
|
There is a simpler way to do a multiline read than above:
function
multiline() { while(($in = readline("")) !=
".") $story .= ($PHP_OS == "WINNT") ?
"\r\n".$in :
"\n".$in;
return $story; }
|
|
add a note |
| |