2
방금 PHP를 배우기 시작했습니다. fopen을 사용하여 숫자 입력을 얻으려고합니다. 프로그램은 사용자에게 숫자를 입력하도록 요청해야하며 숫자가 홀수이거나 짝수 또는 숫자가 아닌 경우 에코를 표시해야합니다. 문제는 내가 입력 한 것과 상관없이 결코 숫자로 간주되지 않는다는 것입니다.숫자 값이 숫자가 아닌가요?
방금 PHP를 배우기 시작했습니다. fopen을 사용하여 숫자 입력을 얻으려고합니다. 프로그램은 사용자에게 숫자를 입력하도록 요청해야하며 숫자가 홀수이거나 짝수 또는 숫자가 아닌 경우 에코를 표시해야합니다. 문제는 내가 입력 한 것과 상관없이 결코 숫자로 간주되지 않는다는 것입니다.숫자 값이 숫자가 아닌가요?
" '[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)
을 사용하여 줄 바꿈 문자를 제거하고 입력 전후의 추가 공백을 제거하십시오.
'$ nbr'의 내용은 무엇입니까? –
'trim ($ nbr)'이라고 표시 한 다음 번호가 맞는지 확인하십시오. – DCoder
그냥 var_dump ($ nbr)로 출력 할 수 있습니다. –