How to take user input like prompt() but in PHP?

How can I make a PHP input thing like prompt('example prompt') in javascript?

Not like a form, like a prompt().


Solution 1:

Solution #1: Prompt for get input inside of anywhere code:

<?php
echo "What do you want to input? ";
$input = rtrim(fgets(STDIN));
echo "I got it:\n" . $input;

Sample output:

# php test.php
What do you want to input? Hello, I'm here!
I got it:
Hello, I'm here!

Solution #2: If you want get input in firstly inline when run php:

<?php
$input = $argv[1];
echo "I got it:\n" . $input;

Sample output:

# php test.php "Hello, I'm here!"
I got it:
Hello, I'm here!

Extra tips:

If you want to integrate CLI and WEB inputs, you can use this magic code:

<?php
if (PHP_SAPI === 'cli') parse_str(implode('&', array_slice($argv, 1)), $_GET);
var_dump($_GET);

And now write for use under CLI:

# php sample.php user=nabikaz website=nabi.ir

And follow the normal routine for the WEB:

http://localhost/sample.php?user=nabikaz&website=nabi.ir

Without defining the number and name of inputs.
Both have the same result. ;-)

array(2) {
  ["user"]=>
  string(7) "nabikaz"
  ["website"]=>
  string(7) "nabi.ir"
}

Solution 2:

You can't take input in the middle of php execution since it finishes before the page is actually shown to the user. However, you can get input using HTML and receive that using php. Here's a really basic example:

<?php
    echo $_POST['value'];
?>
<form method="post" action="">
<input type="text" name="value">
<input type="submit">
</form>

It takes the user input and reloads the page. Then, it echoes what the input was.

Solution 3:

in php you better use form for inputs, however if you want you can use java script input and alert to read and display as follow.

echo "<script>input=prompt('Enter your name !'); alert(input);</script>";