Como ler a entrada do usuário ou do console em PHP?
Em PHP, o console é uma interface de linha de comando, também chamada de shell interativo . Podemos acessá-lo digitando o seguinte comando em um terminal:
php -a
Se digitarmos qualquer código PHP no shell e pressionarmos enter, ele é executado diretamente e exibe a saída ou mostra as mensagens de erro em caso de algum erro. Um exemplo de execução de um código PHP, que lê a entrada do console PHP, tem a seguinte aparência:
Neste artigo, discutiremos dois métodos para ler o console ou a entrada do usuário em PHP:
Método 1: O uso da função readline() é uma função embutida no PHP. Esta função é usada para ler a entrada do console.
As seguintes coisas podem ser alcançadas pela função readline() :
- Aceite uma única entrada solicitando ao usuário:
<?php
// For input
// Hello World
$a
= readline(
'Enter a string: '
);
// For output
echo
$a
;
?>
Saída:
Insira uma string: GeeksforGeeks GeeksforGeeks
Por padrão, o tipo de dados da variável aceita por meio da função readline() é string . Portanto, para qualquer outro tipo de dados, temos que typecast explicitamente conforme descrito abaixo.
<?php
// Input section
// $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
;
?>
Saída:
Insira um número inteiro: 10 Insira um número de ponto flutuante: 9,78 O número inteiro inserido é 10 e o número flutuante inserido é 9,78
- Podemos conseguir as mesmas coisas sem avisar o usuário também:
$a = readline();
Neste caso, assim que o usuário pressiona enter , o valor inserido é armazenado na variável a .
- Aceite várias entradas separadas por espaço: Para isso, usamos outra função explode() junto com readline() . O primeiro argumento de explode() é o delimitador que queremos usar. No exemplo acima, o delimitador é o espaço . O segundo argumento é a função readline() . Aqui também os tipos de dados de $var1 e $var2 serão string. Portanto, temos que fazer um typecast separadamente para outros tipos de dados. No exemplo acima, o typecasting é mostrado para inteiros.
<?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
);
?>
Resultado:
a soma de 10 e 20 é 30 - Também podemos ler um array por meio de 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
)*/
?>
Saída:
Variedade ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 )
Método 2: Usar a função fscanf() funciona da mesma forma que a função fscanf() em C. Podemos ler 2 inteiros do teclado (STDIN) como abaixo:
- Isso é diferente do método anterior
<?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
);
?>
Saída:
A soma de 1 e 5 é 6
Comparação entre dois métodos:
- Não há necessidade de usar typecasting explícito para a função fscanf() , porque isso é feito pelos especificadores de formato, por exemplo, % d , % f , % c etc. Você pode ler mais sobre especificadores de formato .
- A função fscanf() é muito mais rápida do que a função readline().
PHP é uma linguagem de script do lado do servidor projetada especificamente para desenvolvimento web. Você pode aprender PHP do zero seguindo este Tutorial e exemplos de PHP .
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva