Intereting Posts
PHP: пользовательский обработчик ошибок – обработка синтаксических ошибок и фатальных ошибок nginx – Невозможно открыть основной скрипт Проблема с тегом "Файловая система" используя условие МЕЖДУ В ГДЕ Расширение валидатора Laravel несколько раз Как найти следующий числовой индекс существующего массива? Безопасная упаковка длинных строк HTML Разбивка ссылок на страницы Pagination Чтение JSON из удаленного URL в PHP Максимальная длина разрешена в GROUP_CONCAT? Как это передать? Что вызывает ошибку PDO Не удается выполнить запросы, в то время как другие небуферизованные запросы активны? PHP. Неверные данные POST отправляются через форму после эха? postgresql эквивалентно $ mysqli-> insert_id Как получить окончательный, перенаправленный, канонический URL-адрес веб-сайта с использованием PHP? URL-адрес страницы Google Analytics для разбивки страницы на страницу и идентификацию следующей страницы

Использование неопределенной константы STDIN – предполагается «STDIN» в C: \ wamp \ www \ study \ sayHello.php в строке 5

Я хочу изучить 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» внутри вашего кода, как указано выше.