使用mcrypt与phalanger

时间:2012-10-16 20:13:39

标签: php asp.net phalanger

如何使用像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

3 个答案:

答案 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的答案绝对正确,如果这篇文章对你有所帮助,请将他投票给他。然而,我想简化他所说的话,因为他的建议仍然花了我一些时间来理解他在说什么。如果你有机会读到这个正确的我,如果我错了什么,也请雅库布。

让我回答他的第一件事就是这个文件

  

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以加载此扩展名(我想/知道)。

之后,一切似乎都编译好了!谢谢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支持