【问题标题】:My PHP's hash_algos() function no longer works我的 PHP 的 hash_algos() 函数不再起作用
【发布时间】:2012-08-31 21:59:15
【问题描述】:

我不完全确定 PHP 的版本,但我认为它在 5.2 中(XAMPP 的相对较新的安装)。我建立了一个特定的站点,它严重依赖 php 函数 hash_algos() 来填充下拉列表,但最近似乎 hash_algos() 完全没有返回任何内容。另外,使用 windows,如果 XAMPP 没有放弃它。

该网站过去可以工作,但现在不行了,我不知道为什么,我没有更改代码中的任何内容。以下是网站无法运行的部分

<select name="method" id="method">
<?
foreach(hash_algos() as $m)
{
echo "<option value=\"".$m."\">".$m."</option>";
}
?>
</select>

【问题讨论】:

  • PHP 5.2 绝对不是新的。
  • @Praveen Kumar: php.net/hash_algos
  • “网站无法运行” - 没有帮助。你是不是忘记打开服务器了?
  • @OffLuffy,正如手册所说,你需要有PECL hash &gt;= 1.1。你有吗?
  • @zerkms 天哪,这是纯文本。在 Chrome 的 HTML 查看器中查看时,var_dump(hash_algos()) 就是这样显示的。我的服务器似乎不认为 ?> 分隔 PHP,所以虽然它是某种 html 标记。日志记录已打开,它显示了日志中的所有 hash() 错误,我告诉过你的那个。现在只需更改

标签: php html algorithm hash


【解决方案1】:

您需要启用 Hash PECL 包。

这个问题可能对你有用:How to switch hash_algos() on ? I'm with Php 5.2.11

编辑:由于您使用的是 Windows,因此您可能必须自己编译“哈希”包。好像是available on the PECL website but is no longer maintained

要从源代码编译,PHP 有一个step by step guide

在您编译完 DLL 或获得一个 DLL 后,您需要将它添加到您的 php.ini 文件中。

您需要添加如下一行:

extension=php_hash.dll

更多信息请访问PHP's Windows site

【讨论】:

  • 我在搜索这个问题的过程中看到了,虽然我不知道如何在windows上启用或安装PECL。该线程似乎面向 Linux。
  • 转念一想,我之前没有看到 php.ini 的评论,我会尝试在那里找到一些东西。
  • 你需要有Hash包的DLL。我现在正在尝试寻找它,但还没有运气。不过,您可能可以从源代码编译它。 pecl.php.net/package/hash好像有出处
  • 是的,在 tar 中看到了 linux 包的源代码,虽然我不确定如何从源代码编译,不过谢谢。
  • 发现问题。 PHP 不想考虑 ?>,不得不使用 代替,现在它似乎工作正常。谢谢XD
【解决方案2】:

你忘了

<?php ?>

语法

<html>
    <head></head>
    <body>
        <select name="method" id="method">
            <?php
                foreach(hash_algos() as $m)
                {
                    echo "<option value=\"".$m."\">".$m."</option>";
                }
            ?>
        </select>
    </body>
</html>

启动服务器并运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-15
    • 2022-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-04
    • 2021-02-25
    • 2016-06-28
    相关资源
    最近更新 更多