如何使用像mcrypt这样的php扩展?我的第一个想法是找到mcrypt.php并简单地包含它(context.Include(“mcrypt.php”,false);),但当然这不存在,因为它是用C写的。
我正在阅读博客中的Writing compiled PHP extensions in PHP帖子,但这似乎是关于创建自己的扩展以在.net中使用。但也许我错了考虑这句话:“在PHP语言中实现Phalanger扩展。当您使用Phalanger来编译它时,结果是DLL可以像任何其他扩展一样工作”
但即使我仍然没有尝试过phpc(phalanger php编译器)也不会编译c代码。
这些是我的php类试图进行的调用: mcrypt_module_open mcrypt_enc_get_key_size mcrypt_enc_get_block_size
答案 0 :(得分:1)
mcrypt尚未重新实现为托管的Phalanger扩展...如果你知道一些开源替代方案,我可以帮助移植到Phalanger Extension。
目前,您可以使用本机替代方案(因此您必须在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" />
答案 1 :(得分:1)
JakubMíšek的答案绝对正确,如果这篇文章对你有所帮助,请将他投票给他。然而,我想简化他所说的话,因为他的建议仍然花了我一些时间来理解他在说什么。如果你有机会读到这个正确的我,如果我错了什么,也请雅库布。
让我回答他的第一件事就是这个文件
那是什么???? 但经过他们的[Phalanger] svn和位于的文件后php_mcrypt.mng
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以加载此扩展名(我想/知道)。
之后,一切似乎都编译好了!谢谢Jakub
答案 2 :(得分:-2)
安装和使用MCrypt并不复杂。对于* nix用户,PHP.net提供了信息来源in this page。
但对于Windows来说,没有太多信息。
然而,它也很容易。您只需从PHP二进制文件中复制文件 libmcrypt.dll ,将其保存在 ext 目录中并启用它:
extension=php_mcrypt.dll
注意:在WINDOWS环境中,PHP扩展通常是 php _ ,所以你必须重命名上面的DLL或PHP.INI行。
之后,重启Apache。
但是在你这样做之前,首先检查你的phpinfo(),因为一些软件包和/或发行版带有预编译的静态MCrypt。
运行它并检查 with-mcrypt = static 和/或MCrypt组,并启用 mcrypt支持