Вам действительно нужен какой-то механизм IP C. Когда вы выполняете / обновляете скрипт из приложения PHP, я бы посоветовал вам взглянуть на что-то вроде ZeroMQ, которое поддерживает и Python, и PHP, и позволит вам быстро и грязно * 1001 Реализация * Pub / Sub .
Основная идея c заключается в том, чтобы ваш скрипт python воспринимался как подписчик сообщений, поступающих из приложения PHP, которое публикует их по мере необходимости. Чтобы добиться этого, вам нужно один раз запустить python «скрипт» и оставить его работать в фоновом режиме, прослушивая сообщения в ZeroMQ. Примерно так должно получиться
import zmq
context = zmq.Context()
socket = context.socket(zmq.REP)
socket.bind("tcp://*:5555")
while True:
# Wait for next message from from your PHP application
message = socket.recv()
print("Recieved a message: %s" % message)
# Here you should do the work you need to do in your script
# Once you are done, tell the PHP application you are done
socket.send(b"Done and dusted")
Затем в своем приложении PHP вы можете использовать что-то вроде следующего для отправки сообщения в Python службу
$context = new ZMQContext();
// Socket to talk to server
$requester = new ZMQSocket($context, ZMQ::SOCKET_REQ);
$requester->connect("tcp://localhost:5555");
$requester->send("ALL THE PARAMS TO SEND YOU YOUR PYTHON SCRIPT");
$reply = $requester->recv();
* 1010. * Обратите внимание, я нашел вышеупомянутые примеры с помощью быстрого поиска в Google (и с небольшими поправками в образовательных целях), но они не проверены и предназначены исключительно для начала. Для получения дополнительной информации посетите
ZeroMQ и
php -zmq Веселитесь.