Я почти никогда не работал с потоками ввода в PHP, но я вынужден сделать это из-за сайта hackerrank.com, который пишет свои проблемы для более «потоковых» языков, таких как C ++ или Java. Я понял, как с этим справиться, но я бы хотел использовать отладчик в IDE и «записать» во входной поток, чтобы я мог протестировать свою программу.
Простой скрипт, например:
<?php
$stdin = fopen("php://stdin", "r");
$wordCount = trim(fgets($stdin));
for ($i = 0; $i < $wordCount; $i++) {
$array1 = str_split(trim(fgets($stdin)));
...
Как мне написать что-нибудь «php: // stdin»?
Немного поздно, и не самый политкорректный ответ, но если вы просто тестируете, у вас есть два варианта:
Когда вы запускаете в режиме сценария внутри PHPStorm, он запускает консоль внутри IDE, там вы можете скопировать и вставить любой ввод, и отладчик будет работать очень хорошо.
И второй вариант, если вы не хотите копировать и вставлять, вы можете создать stdin.txt и изменить строку кода на
$handle = fopen ("stdin.txt","r");
Внутри stdin.txt вы можете иметь вход для тестирования. Обязательно верните его обратно, когда закончите тестирование.
Других решений пока нет …