质量可靠
品质保障,精益求精
\
如何让 php 函数与 c# 交互?使用 com interop:允许 php 和 c# 对象通过 com 组件进行通信。使用 web 服务:利用 http 协议在不同的系统之间传输数据。
PHP 函数如何与 C# 交互:跨越.NET 边界
在现代应用程序开发中,跨语言交互变得越来越重要。本指南将探讨如何使用 PHP 和 C# 在各种复杂场景中轻松实现跨语言交互。
先决条件
立即学习“PHP免费学习笔记(深入)”;
安装 PHP
安装.NET Core SDK
一些 C# 编程基础知识
方法 1:使用 COM Interop
COM(组件对象模型)允许 PHP 和 C# 对象相互通信。
PHP 代码:
Visible = true; $com->Documents->Add(); ?>
C# 代码:
using System.Runtime.InteropServices; namespace CsToPhp; public class Program { [DllImport("mscoree.dll")] public static extern void CoCreateInstance( [MarshalAs(UnmanagedType.LPStruct)] Guid rclsid, IntPtr pUnkOuter, int dwClsContext, [MarshalAs(UnmanagedType.LPStruct)] Guid riid, [MarshalAs(UnmanagedType.IUnknown)] out object ppv); public static void Main(string[] args) { var guid = new Guid("00020980-0000-0000-C000-000000000046"); object word; CoCreateInstance(guid, IntPtr.Zero, 4, guid, out word); } }
实战案例:使用 COM 来读取 Microsoft Word 文档的内容。
方法 2:使用 Web 服务
Web 服务是一种使用 HTTP 协议在不同系统之间交换信息的标准方法。
PHP 代码:
HelloWorld(); ?>
C# 代码:
using System.Web.Services.Description; using System.Web.Services.Discovery; using System.Xml; namespace CsToPhp; public class Program { public static void Main(string[] args) { // 发现 Web 服务 DiscoveryClientProtocol discoClient = new DiscoveryClientProtocol(); discoClient.Discover("http://localhost:8080/service.asmx?wsdl"); // 检索服务描述 ServiceDescription description = discoClient.Documents[0] as ServiceDescription; var port = description.Services[0].Ports[0]; // 动态创建代理并调用 Web 服务 var wsdlUrl = "http://localhost:8080/service.asmx?wsdl"; var endpointAddress = new EndpointAddress(wsdlUrl); var binding = new BasicHttpBinding(); var factory = new ChannelFactory(binding, endpointAddress); ICsToPhp client = factory.CreateChannel(); string result = client.HelloWorld(); } } [WebService(Namespace = "http://cs-to-php.com/")] public interface ICsToPhp { [WebMethod] string HelloWorld(); }
实战案例:使用 Web 服务从 PHP 应用程序调用 C# 方法。
以上就是PHP 函数如何与 C# 交互:跨越 .NET 边界的详细内容,更多请关注本网内其它相关文章!