您好我想扫描音频 - 视频文件并使用php将其元数据存储在数据库中.我发现这个命令行包装器使用由banshee开发人员编译的TagLib.dll来完成这项工作.它工作正常但受实现的功能限制.我想通过PHP直接访问dll方法.
在PHP中,我们有一个函数(DOTNET),它允许我从.Net程序集中实例化一个类并调用它的方法并访问它的属性,如下所示:
/*$obj = new DOTNET("assembly", "classname");*/
$stack = new DOTNET("mscorlib", "System.Collections.Stack");
$stack->Push(".Net");
$stack->Push("Hello ");
echo $stack->Pop() . $stack->Pop();
//Returns string(10) "Hello .Net";
Run Code Online (Sandbox Code Playgroud)
我看到很多关于PHP-DLL-COM的问题,并且有一些建议:
regsvr32;;
;
DESCRIPTION "Simple COM object"
EXPORTS
DllGetClassObject PRIVATE
DllCanUnloadNow PRIVATE
DllRegisterServer PRIVATE
DllUnregisterServer PRIVATE
Run Code Online (Sandbox Code Playgroud)
我的问题是:如何构建DLL并通过PHP使用其方法?
我的配置:
OS
Windows Server 2012 R2标准版i586
Apache:
Apache/2.2.21(Win32)DAV/2 PHP/5.4.42 mod_ssl/2.2.21 OpenSSL/0.9.8r
PHP
PHP版本:5.4.42
Arch:x86
编译器:MSVC9(Visual C++ 2008)
COM支持:启用
DCOM支持:禁用
.Net支持已启用
Microsoft …
$myapp = new COM("word.application");
// returns a fatal error: "Class 'COM' not found in c:/www/comConnector.php"
shell_exec("whoami");
//returns "NT authority/system"
Run Code Online (Sandbox Code Playgroud)
PHP 5.3.16(cli)(内置:2012年8月15日20:06:57)
版权所有(c)1997-2012 PHP Group
Zend Engine v2.3.0,版权所有(c)1998-2012 Zend Technologies