RFC 3875 - The Common Gateway Interface (CGI)
PHP Manual: CGI and command line setups
Статья на Хабрахабре (russian)
using System;
using System.Diagnostics;
namespace PhpApp
{
class Program
{
static void Main(string[] args)
{
Process php = new Process();
// Path to php-cgi
php.StartInfo.FileName = "c:\\php\\php-cgi.exe";
// We cannot execute it through ShellExecute - need to redirect output stream
php.StartInfo.UseShellExecute = false;
// Enable output stream redirection
php.StartInfo.RedirectStandardOutput = true;
// Add handler to receive data from output stream
php.OutputDataReceived += new DataReceivedEventHandler(php_OutputDataReceived);
// Add only one, the most required for php-cgi environment variable - SCRIPT_FILENAME
php.StartInfo.EnvironmentVariables.Add("SCRIPT_FILENAME", "test.php");
// Start php-cgi
php.Start();
// Start retrieve data from output stream
php.BeginOutputReadLine();
// Wait until php-cgi will stop
php.WaitForExit();
// Close php-cgi process
php.Close();
// Wait for any key
Console.ReadKey();
}
static void php_OutputDataReceived(object sender, DataReceivedEventArgs e)
{
// If no data received, quit from function
if (e.Data == null)
return;
// Out received data to console
Console.WriteLine(e.Data);
}
}
}