2014-04-01 2 views
2

방금 ​​PHP를 배우기 시작했습니다. fopen을 사용하여 숫자 입력을 얻으려고합니다. 프로그램은 사용자에게 숫자를 입력하도록 요청해야하며 숫자가 홀수이거나 짝수 또는 숫자가 아닌 경우 에코를 표시해야합니다. 문제는 내가 입력 한 것과 상관없이 결코 숫자로 간주되지 않는다는 것입니다.숫자 값이 숫자가 아닌가요?

+0

'$ nbr'의 내용은 무엇입니까? –

+5

'trim ($ nbr)'이라고 표시 한 다음 번호가 맞는지 확인하십시오. – DCoder

+0

그냥 var_dump ($ nbr)로 출력 할 수 있습니다. –

답변

3

" '[I가 입력 한 내용] 'n'est 않은 시프레 파스"여기 내 코드

#!/usr/bin/php 
<?php 

echo "Entrez un nombre: "; 
$handle = fopen ("php://stdin","r"); 
$nbr = fgets($handle); 
if (is_numeric($nbr)) 
{ 
    if ($nbr % 2 == 0) 
     echo "Le chiffre $nbr est Pair\n"; 
    else if ($nbr % 2 == 1) 
     echo "Le chiffre $nbr est Impair\n"; 
} 
else 
    echo "'$nbr' n'est pas un chiffre\n"; 
?> 

내가 입력으로 원하는 모든 것을 입력 할 수 있습니다,이 시점에서, 그러나 대답은 항상 입니다 fgets은 스트림에서 줄 바꿈 문자를 포함하여 한 줄을 가져옵니다. $nbr은 따라서 숫자가 아닌 "123\n"입니다.

strlen($nbr) (2)을 인쇄 한 다음 ord($nbr[1])으로 인쇄하여 10 - 줄 바꿈 문자의 ASCII 코드를 인쇄하여 확인할 수 있습니다.

trim($nbr)을 사용하여 줄 바꿈 문자를 제거하고 입력 전후의 추가 공백을 제거하십시오.

관련 문제