Это зависит от того, чего вы на самом деле хотите достичь, то есть, что вы подразумеваете под «подключением» программы c к index.php
?
Первое, что вы должны понять, это то, что мы говорим здесь о двух процессах: (a) программа c и (b) любой интерпретатор, выполняющий скрипт PHP (возможно, веб-сервер).
Вы хотите обмениваться данными между двумя процессами, поэтому мы говорим о Межпроцессное взаимодействие .
В статье Википедии вы видите таблицу, в которой перечислены несколько средств:
Файлы: Ваш PHP-скрипт может записывать в файл, программа c считывает из него (или, в случае Unix, Pipes подойдет даже лучше)
Сокеты. Как вы уже упоминали, одна из программ может устанавливать соединение через сокеты и обмениваться данными через это соединение.
- другие средства (взгляните на стол)
Поскольку ваш PHP-скрипт, вероятно, выполняется на веб-сервере, решение для сокетов будет многообещающим:
Веб-сервер уже прослушивает входящие соединения и предоставляет достойный протокол для обмена данными: HTTP .
Я не буду повторять ответ Basile, а просто приведу пример обмена некоторыми данными между программой c и сценарием PHP с веб-сервером с использованием CGI:
Веб-сервер предоставляет URL, который будет вызывать PHP-скрипт, например http://test.me/test.php
.
Теперь процедура будет:
- Программа на C устанавливает TCP-соединение с сокетом test.me:80
Программа c отправляет запрос HTTP GET , передавая текст в виде
GET /test.php?a=31&b=19 http/1.1
Сервер вызовет index.php, предоставив ему пары ключ-значение a = 31, b = 19
Скрипт будет делать что-то и печатать что-то на стандартный вывод:
abc
(Это не правильный HTTP-ответ, но его достаточно, чтобы набросать процедуру в общем)
- Веб-сервер отправит обратно вывод php-скрипта
abc
через соединение с программой c.
Как видите, в этом примере вы перевели
- a = 31, b = 19 из программы c на веб-сервер / index.php
abc
с веб-сервера / index.php в программу c
В общем, лучшее решение зависит от того, чего вы хотите достичь. Я предполагаю, что ваш пример - всего лишь пример, и вы можете решить его так, как я написал выше. Однако, если вы действительно хотите, чтобы что-то было напечатано на вашей консоли, просто попросите ваш index.php записать это в файл / канал, и программа c прочитает файл ...
Так или иначе, я чувствую, что вам есть, что исследовать ...
Кроме того, я хочу уточнить одну последнюю вещь:
Для простоты я использовал 'c program', но мне не обязательно быть программой c, но ваша проблема связана с произвольным процессом, это также может быть скрипт на python, выполняемый интерпретатором python или ...