"Welcome to our PHP 101 blog, where we demystify the world of web development. "

Saturday, January 20, 2024

PHP Console

PHP console

PHP, the console is a command-line interface, which is also called interactive shell. We can access it by typing the following command in a terminal: 

php -a

If we type any PHP code in the shell and hit enter, it is executed directly and displays the output or shows the error messages in case of any error.

We will discuss two methods for reading console or user input in PHP: 

  • Method 1: Using readline() function is a built-in function in PHP. This function is used to read console input. 
  • Method 2: Using fscanf() function works same as the fscanf() function in C. 

Method 1: Using readline() function 

readline() function is a built-in function in PHP. This function is used to read console input. 

Case 1: 

Accept a single input by prompting the user:

<?php

 // For input

// Hello World

$a = readline('Enter a string: ');

 // For output

echo $a;    

?>

Output: 

Enter a string: GeeksforGeeks

GeeksforGeeks

Case 2: By default, the data type of the variable accepted through readline() function is string. So for any other data type, we have to typecast it explicitly as described below.

Example:

<?php

// $a = 10

$a = (int)readline('Enter an integer: ');

 // $b = 9.78

$b = (float)readline('Enter a floating'  . ' point number: ');

 // Entered integer is 10 and

// entered float is 9.78

echo "Entered integer is " . $a . " and entered float is " . $b;

?>

Output: 

Enter an integer: 10

Enter a floating point number: 9.78

Entered integer is 10 and entered float is 9.78

Case 3: Accept multiple space separated inputs: 

For this, we use another function explode() together with readline(). 

The first argument of explode() is the delimiter we want to use. In the below example, the delimiter is space. 

The second argument is the readline() function. Here also the data type of $var1 and $var2 will be string. 

So we have to separately typecast them for other data types. In the above example, the typecasting is shown for integers. 

Example:

<?php

// Input 10 20

list($var1, $var2)  = explode(' ', readline());  

// Typecasting to integers

$var1 = (int)$var1;

$var2 = (int)$var2;

 // Printing the sum of var1 and var2.

// The sum of 10 and 20 is 30

echo "The sum of " . $var1 . " and "

    . $var2 . " is " . ($var1 + $var2);

?>

Output:

The sum of 10 and 20 is 30

We can also read an array through explode(): 

<?php

 // For input

// 1 2 3 4 5 6

$arr = explode(' ', readline());

 // For output

print_r($arr);

 /*Array

(

    [0] => 1

    [1] => 2

    [2] => 3

    [3] => 4

    [4] => 5

    [5] => 6

)*/

  ?>

Output: 

Array

(

    [0] => 1

    [1] => 2

    [2] => 3

    [3] => 4

    [4] => 5

    [5] => 6

)

Method 2: Using fscanf() function

fscanf() function works same as the fscanf() function in C. We can read 2 integers from Keyboard(STDIN) as below: 

Example:

<?php

 // Input 1 5

fscanf(STDIN, "%d %d", $a, $b);

  // Output

// The sum of 1 and 5 is 6

echo "The sum of " . $a . " and "    . $b . " is " . ($a + $b);

?>

Output: 

The sum of 1 and 5 is 6

Comparison between two methods: 

  1. No need to use explicit typecasting for fscanf() function, because it is done by the format specifiers , e.g. %d, %f, %c etc. You can read more about format specifiers.
  2. fscanf() function is much faster than the readline() function.




 

No comments:

Post a Comment

Pages

SoraTemplates

Best Free and Premium Blogger Templates Provider.

Buy This Template