#php #stream #fread #proc-open
#php #поток #fread #proc-открыть
Вопрос:
#Сценарий:
Я выполняю коды на python с помощью proc_open, используя py.exe .
Пример:
proc_open('py.exe file.py', $descriptorspec, $pipes, null, null)
Мой код на Python может иметь вход или выходы в неопределенной последовательности.
Пример:
a = input('insert a value')
print(a)
или
print('Hello, this is a program!')
input('insert a value')
#Выходы:
Для получения выходных данных я использую fread.
#Входы:
Для получения входных данных я использую fwrite.
#Проблема:
Поскольку у меня есть неопределенная последовательность в коде python, я не знаю, ожидает ли моя программа (код python) ввода или вывода. Если моя программа ожидает ввода, и я выполняю команду fread (вывод), мой PHP войдет в цикл… ожидание несуществующего вывода python.
#Вопрос
Я могу проверить в «каналах», ожидает ли мое приложение Python ввода или вывода?
P.S: Если это невозможно, как можно решить эту проблему?
Ответ №1:
По-видимому, нет собственного решения проблемы. На данный момент я добавляю непечатаемый символ (0) к пользовательскому вводу.
исходная печать: input("enter with one number")
измененная печать: input(chr (0) "enter with one number")
Таким образом, я могу использовать флаг (out / in)
😉