如何使用像mcrypt这样的php扩展?我的第一个想法是找到mcrypt.php并简单地包含它(context.Include("mcrypt.php",false);),但这当然不存在,因为它是用C语言编写的。
我正在阅读博客上的Writing compiled PHP extensions in PHP帖子,但这似乎是关于创建您自己的扩展以在.net中使用。但考虑到这句话:“在PHP语言中实现Phalanger扩展。当你使用PHP库并使用Phalanger编译它时,结果是DLL可以像任何其他扩展一样工作”,这句话也许是错的。但就我所知,即使是phpc (phalanger php编译器)也不会编译c代码,尽管我没有尝试过。
这些是我的php类试图进行的调用: mcrypt_module_open mcrypt_enc_get_key_size mcrypt_enc_get_block_size
发布于 2012-10-19 01:47:29
Jakub Míšek的回答绝对正确,如果这篇文章对你有帮助,请也投票支持他。然而,我想简化他说的话,因为他的建议仍然花了我一些时间来理解他说的话。也请Jakub,如果你有机会阅读这篇文章,如果我错了,请纠正我。
他的回答首先让我想到的是这个文件
php_mcrypt.mng
那是什么?但在深入研究他们的Phalanger svn和位于
C:\Program Files\Phalanger 3.0\Wrappers
我找到了mcrypt文件。在php聊天室的一些帮助下,我得到了关于mng是什么的线索,Managed Code。
因此,在添加文件作为引用并编辑web.config文件以包含它之后(如Jakub所示)
<phpNet>
<classLibrary>
<add assembly="php_mcrypt.mng, Version=3.0.0.0, Culture=neutral, PublicKeyToken=4ef6ed87c53048a3" section="mcrypt" />
</classLibrary>
<scriptLibrary/>
</phpNet>在编译时(我认为/知道),这些代码行必须输入到Phalanger中才能加载这个扩展。
在那之后,一切似乎都编译和运行得很好!谢谢雅各布
发布于 2012-10-18 03:19:39
mcrypt尚未重新实现为托管Phalanger扩展...如果你知道一些开源的替代方案,我可以帮助你移植到Phalanger扩展。
现在,您可以使用原生替代方案(因此您必须在x86中运行)。只需打开您的.config ( web应用程序的web.config,或为桌面应用程序创建app.config ),然后添加以下内容
<phpNet>
<classLibrary>
<add assembly="php_mcrypt.mng, Version=3.0.0.0, Culture=neutral, PublicKeyToken=4ef6ed87c53048a3" section="mcrypt" />发布于 2012-10-17 04:55:02
安装和使用MCrypt并不是那么复杂。对于*nix用户,PHP.net提供了一个信息源in this page。
但对于Windows来说,没有太多的信息。
然而,这也很简单。您只需从PHP二进制文件中复制libmcrypt.dll文件,将其保存在ext目录中并启用它:
extension=php_mcrypt.dll注意:在WINDOWS环境下,PHP EXtensions通常被命名为php_,因此您必须重命名DLL或上面的PHP.INI行。
之后,重新启动Apache。
但在此之前,请先检查您的phpinfo(),因为有些包和/或发行版附带了一个预编译的静态MCrypt。
运行它并检查启用了MCrypt支持的with-mcrypt=static和/或mcrypt组
https://stackoverflow.com/questions/12922689
复制相似问题