在 C# 应用程序中使用 php 引擎

本文关键字:php 引擎 应用程序 | 更新日期: 2023-09-27 17:57:03

我想让我的用户能够配置一些php脚本来与我的应用程序进行交互。

我想给用户一个备忘录。用户使用 php 语法编写一些代码,然后按 execute 键。php 引擎执行代码,所以我可以打印结果。

例如,我想写这样的东西:

PHPassembly = Assembly.LoadFrom("php5ts.dll"); 
ExecutePHPScript(PHPassembly,StringContainingAScript);
ResultVar=GetPHPVar(PHPassembly,"ResultVar");

我没有网络服务器。我没有互联网连接。只有窗口的本地应用程序。

我尝试加载php5ts.dll,但编译器说我需要一个程序集清单。

有人知道如何与 php 交互吗?

在 C# 应用程序中使用 php 引擎

你需要2个文件(来自php-5.3.5-Win32-VC9-x86)php-win.exe和php5ts.dll
而不仅仅是将这两个文件放在可执行文件目录中并运行:

string code = "echo 'test';";
System.Diagnostics.Process ProcessObj = new System.Diagnostics.Process();
ProcessObj.StartInfo.FileName = "php-win.exe";
ProcessObj.StartInfo.Arguments = String.Format("-r '"{0}'"", code);
ProcessObj.StartInfo.UseShellExecute = false;
ProcessObj.StartInfo.CreateNoWindow = true;
ProcessObj.StartInfo.RedirectStandardOutput = true;
ProcessObj.Start();
ProcessObj.WaitForExit();
string Result = ProcessObj.StandardOutput.ReadToEnd();
MessageBox.Show(Result);

您可以尝试在本地托管 php 运行时。有预配置的软件包,包括PHP + Apache,如xampp和WampServer。这样,您可以通过 HTTP 请求来调用它localhost(此处讨论这种方法)。

通过一些配置,您可以针对命令行上运行的 php 执行代码。

有关详细信息,请参阅 php.net

在寻找类似的东西时,我发现了这个问题。

也许移植并包含来自 http://ph7.symisc.net/index.html 的代码,如果你不需要太花哨的 PHP 东西?