Я хочу изучить php & mySQL, и я купил книгу (php & mySql: недостающие руководства 2)
Я установил Wampserver2.4 на win8 64-битную машину.
Конфигурация сервера
Версия Apache: 2.4.4
Версия PHP: 5.4.12
в первом уроке я получил эту ошибку 🙁
Notice: Use of undefined constant STDIN - assumed 'STDIN' in C:\wamp\www\study\sayHello.php on line 5
это код php в файле "sayHello.php"
<?php echo "Hello there. So I hear you're learning to be a PHP programmer!\n"; echo "Why don't you type in your name for me:\n"; $name = trim(fgets(STDIN)); echo "\nThanks, " . $name . ", it's really nice to meet you.\n\n"; ?>
Просто определите константу STDIN
в верхней части файла,
define('STDIN',fopen("php://stdin","r"));
Попробуйте добавить это в начало файла
define('STDIN',fopen("php://stdin","r"));
Похоже, вы пытаетесь использовать константу, называемую STDIN
, которая не существует.
STDIN используется для получения текущего открытого потока с fopen.
$file = fopen('file/path'); $name = trim(fgets(STDIN));
Использование STDIN
без открытого потока не будет работать.
Я также считаю, что STDIN
работает только под cli, но не уверен на 100%. Если это так, используйте тот же код, что и выше, но замените STDIN
на $file
;
Если вы хотите, чтобы ваш код был правильно выполнен с константой STDIN, у вас есть два варианта:
# php -r "fgets(STDIN);"
или :
# gedit file.php //make a file with <?php fgets(STDIN); ?> # php file.php // execute the file
Другой вариант:
#php <?php fgets(STDIN); ?> //click on ctrl+d
Не будет работать !! вам может потребоваться определить константу «STDIN» внутри вашего кода, как указано выше.