Позвольте мне поставить свою проблему в простой форме. Я написал программу на C, которую я сохраню на своем сервере. Теперь я разрабатываю сайт с использованием PHP, так что другие пользователи могут также иметь доступ к моей автономной программе C.
Поэтому здесь я хочу, чтобы мой PHP принимал данные от пользователей и вносил этот вход и запускал мою программу на C, а затем снова возвращал результаты программы C пользователям, использующим PHP (возможно, используя тот же самый сайт).
Пожалуйста, предложите мне, как это сделать. Мне было бы легче понять, можете ли вы сказать мне, используя простую программу. Например, моя программа C имеет функцию, которая добавляет два числа. Пользователи могут предоставить свой ввод (цифры) с помощью моего веб-сайта. Затем PHP каким-то образом взаимодействует с функцией C и возвращает результаты пользователю.
Просто используйте команду php exec. Я предполагаю, что у вас есть доступ к исполняемому файлу C. http://www.php.net/manual/en/function.exec.php
<?php // outputs the username that owns the running php/httpd process // (on a system with the "whoami" executable in the path) echo exec('whoami'); ?>
Cgi-bin в Apache может выполнять любой вид исполняемого файла на вашем сервере. PHP обычно запускается как модуль Apache для повышения производительности, но также может выполняться Cgi-bin.
Вы можете написать скрипт Cgi (обычно в PERL) для выполнения вашей программы на C. Вы можете просто написать текстовый файл с вашей программой на C, а затем получить доступ к тому же файлу на PHP.
Вам нужно будет создать программу C, которая анализирует аргументы командной строки, например:
#include <stdio.h> #include <stdlib.h> int main(int argc, char **argv) { printf("%d", atoi(argv[1]) + atoi(argv[2])); return 0; }
Затем вызовите его из PHP с помощью exec, который может поместить то, что ваша программа C выведет на stdout в массив. См. http://se2.php.net/function.exec .