PHP内部hashCode函数

2024-04-28

我正在寻找与 JAVA 等效的 PHP

 "SomeString".hashCode();

功能。我正在寻找的 hashCode 应该与 PHP 中用于索引 Hashmap 的 hashCode 相同。我希望你可以帮助我 :)

EDIT:

好的,找到了我正在搜索的函数,它是用 C 编写的,在 PHP 本身中不可用,但感谢您的帮助!

ulong zend_inline_hash_func(char *arKey, uint nKeyLength)
{
        ulong $h = 5381;
        char *arEnd = arKey + nKeyLength;

        while (arKey < arEnd) {
                $h += ($h << 5);
                $h += (ulong) *arKey++;
        }
        return $h;
}

Arkh和guiguoz引用的github解决方案方向是正确的,但是都没有考虑到PHP一旦超过2^61就会将整数哈希值上转换为double。 java 函数使用固定硬件 32 位有符号值进行计算,涉及 32 位算术溢出(CPU 固有的)以将该值保持为 32 位有符号整数。

在 PHP 中,每次更新 $hash 时,您都需要手动执行算术溢出:

function overflow32($v)
{
    $v = $v % 4294967296;
    if ($v > 2147483647) return $v - 4294967296;
    elseif ($v < -2147483648) return $v + 4294967296;
    else return $v;
}

function hashCode( $s )
{
    $h = 0;
    $len = strlen($s);
    for($i = 0; $i < $len; $i++)
    {
        $h = overflow32(31 * $h + ord($s[$i]));
    }

    return $h;
}

(编辑:更正 %v 拼写错误)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP内部hashCode函数 的相关文章

  • PHP:检测USB设备

    我正在尝试使用 PHP 将用户名和密码存储到 USB 拇指驱动器上的文本文件中 因此 当用户返回使用 USB 密钥登录时 应该会打开一个弹出窗口 并提示输入用户名和密码 所以我的问题是如何使用 PHP 检测 USB 拇指驱动器 所以客户端或
  • 在 Woocommerce 商店页面中显示可变产品的默认变化价格

    I m wondering how I can display the product price on the shop page Right now my variable products are shown with their p
  • 使用 PHP 将表单数据发送/发布到 URL [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我有一个通过 POST 提交的表单 提交表单后我捕获变量 如何连接表单数据 然后将其 POST 到 url 然后重新定向到感谢页面 这不是确
  • php字符串是值类型吗?

    为什么php的string是值类型 每次将参数传递给函数时 每次进行赋值时 每次连接都会导致字符串被复制时 它都会被复制到各处 我的 NET 经验告诉我 它似乎效率低下 迫使我几乎在任何地方都使用引用 考虑以下替代方案 替代方案1 This
  • Laravel 验证:对 null 的成员函数调用失败()

    这段代码几天前还可以工作 但我似乎做了一些事情导致它崩溃 我有这条路线 Route post admin routemanagement AdminController addRoute 看起来像这样 public function add
  • mySQL 基于不同表的 SELECT(计数)更新表

    我有一个课程表和一个科目表 CLASS class id class name subject id date time imagine some rows here SUBJECT subject id subject name curr
  • 下拉 Ajax onchange SonataAdminBundle Symfony2 问题

    我正在尝试在 SonataAdminBundle 中实现 onchange 下拉菜单 我的实体就像 class BuilderHomePage var integer ORM Column name id type integer null
  • 如何记录 Doxygen 中不存在的变量?

    例如 我在配置文件中定义了 theme 全局变量 Doxygen 不处理该变量 但我想记录下来 我尝试这样做 var theme brief Active theme 但没有成功 您可以创建一个 doxygen 特定文件来记录变量 例如 配
  • Laravel 5.4 密码重置

    我有一个 Laravel 5 4 应用程序 我的管理区域中有一个视图 允许我查看所有用户 我想创建一个功能 允许我单击后端的按钮 自动发送默认 Laravel 密码重置功能的过程 在我看来 我有以下几点 table class table
  • Javascript 闭包与 PHP 闭包,有什么区别?

    JS 中的闭包和 PHP 中的闭包有什么区别 它们的工作方式几乎相同吗 在 PHP 中编写闭包时有什么需要注意的注意事项吗 一个区别是两者如何处理存储执行匿名函数的上下文 JavaScript var a 1 var f function
  • 选择早于的时间戳

    我如何从数据库中选择超过 12 小时的项目 我使用时间戳列来存储时间 但我认为我不需要年 月 日 只需要小时 我有类似的东西 但它不起作用 没有错误 只是从表中返回所有数据 sql SELECT FROM Y WHERE X and tim
  • Mailgun 内联图像,它是如何工作的?

    我正在使用 mailgun 并希望将图像添加到我的时事通讯中 现在我这样做了 mg gt sendMessage domain array from gt email protected cdn cgi l email protection
  • Laravel 5.2 如何更新迁移而不丢失数据

    我使用的是 laravel 5 2 我通常会根据项目要求更新数据库 所以我希望在不丢失数据库记录的情况下执行此操作 我的意思不是如何为我的数据库播种 我的意思是当我的数据库处于活动状态并且我想更新它时抛出 laravel 迁移 我正要扔La
  • 将文本中的所有 URL 替换为 PHP 中的可点击链接[重复]

    这个问题在这里已经有答案了 我有一个用 PHP 编写的 Web 应用程序 我想找到用户评论中的所有 URL 并将它们更改为可点击的链接 我搜索了很多网站和页面 找到了以下解决方案 不幸的是我没有再次找到它的参考链接 感谢其作者 该代码可以完
  • 如果在 Woocommerce 中应用了任何优惠券代码,请删除一些支付网关

    我开始从事小型 Woocommerce 项目 我有 3 个支付网关进入这家商店 Paypal 信用卡和直接银行转账 我想要的是 如果使用优惠券代码 我想从可用的支付网关中禁用 或删除 Paypal 和信用卡 并仅保留 直接银行转账 作为可用
  • 使用单个查询和每用户密码盐进行用户登录

    我决定使用存储在数据库中的每用户盐来实现用户登录 盐作为密码的前缀 该密码使用 SHA 进行哈希处理并存储在数据库中 过去 当我不使用盐时 我会使用典型的方法 使用用户输入的用户名和密码来计算查询返回的行数 然而 对于每个用户的盐 您需要先
  • 如何使用 PHP 以任意顺序进行字符搜索(12 个字母,其中 6 个字母构成一个单词)?

    我整天都在想这个问题 似乎无法找出一种记忆有效且快速的方法 问题是 例如 我有这些信 e f j l n rr t t u w x 12 个字母 我正在找这个词 海龟 6 个字母 如何使用 php 找到完整范围 12 个单词 中所有可能的单
  • PHP 中可以动态添加数据成员吗?

    我想知道是否可以在 PHP 运行时添加新的类数据成员 Yes prop newname obj gt prop 42 会做同样的事情 obj gt newname 42 如果 obj 尚不存在 则任一者都会将 newname 添加为属性
  • 将 foreach 与 SplFixedArray 结合使用

    看来我无法通过引用迭代 SplFixedArray 中的值 spl new SplFixedArray 10 foreach spl as value value string var dump spl Outputs Fatal erro
  • PHP 文件由浏览器下载,而不是由本地开发服务器(MAMP)处理

    一切都很顺利 直到我添加AddHandler application x httpd php5s php到本地服务器文档根目录中的 htaccess 文件 根据我正在使用的站点 我经常更改该文件 因为我访问时这样做了http 本地主机 88

随机推荐

  • 更改工具栏中的标题颜色?

    我有一个使用的工具栏 并设置标题 ActionBarActivity getActivity getSupportActionBar setTitle Home 有没有办法将颜色从黑色更改为白色 我尝试制作自己的主题并将其设置在 xml 中
  • Java邮件,设置回复地址不起作用

    我用java写了一个小的电子邮件发送程序 它有from to and reply to地址 当客户端尝试回复邮件时 应该能够回复reply to地址 目前它不起作用 我的代码如下 File Name SendEmail java impor
  • 在 stackblitz 中找不到包,即使它存在于 npm 网站中。那要怎么安装呢?

    我正在 stackblitz 中安装聚合物应用程序的依赖项 说找不到 3 个包 但 npm 网站上有这些包 我也尝试过cdn 即使这样也行不通 截图 我也安装了来自该网站的 CDN https www jsdelivr com packag
  • 如何使用 Playwright 打开新选项卡(例如,单击按钮在新选项卡中打开新部分)

    我正在寻找针对当前情况的更简单的解决方案 例如 您打开 google 任何其他网站 并且希望通过单击按钮 例如 Gmail 使用 Playwright 在新选项卡中打开此页面 let browser page context describ
  • 如何将钱兑换成零钱

    尝试将输入的数字转换为 25 美分 50 美分 10 美分和 10 分 有几个问题 public class Coins public static void main String args private int quarters di
  • 从 Android 通知中的 URL 加载图像

    在我的 Android 应用程序中 我想动态设置将从 URL 加载的通知图标 为此 我使用了setLargeIcon中的NotificationBuilder的属性receiver 我参考了很多链接并尝试了各种解决方案 但无法获得所需的输出
  • Android 应用程序还需要包含扩展文件下载器吗?

    我的问题是当应用程序大于 50MB 并且必须使用它们时 应用程序是否需要能够下载扩展文件 根据 Android 开发人员帮助 应用程序可以依赖扩展文件 在较新的设备上 扩展文件会在 APK 之前 之后自动下载 而在 较旧的设备 上 开发人员
  • PHP客户端验证https证书

    我需要创建一个 php 来充当客户端并使用 https 下的一些 Web 服务 我的问题是我还想验证服务器证书 我需要知道我有正确的服务器并且中间没有人充当服务器 有人能帮助我吗 Thanks 如果您有curl 扩展 则可以将其配置为验证连
  • 如何防止IntelliJ IDEA删除未使用的包?

    我正在使用 intellij 我的问题是当我开始将一些临时未使用的包导入到我的类文件中时 intellij 会在一秒钟内删除这些行 我怎样才能关闭这个不太好的功能 Disable File Settings Editor General A
  • Xcode:如何创建出现在另一个视图控制器中的弹出视图控制器

    基本上我想做的是 假设我有一个名为 V1 的视图控制器 它内部有一个常规视图和一个按钮 现在 当您点击该按钮时 我希望该按钮创建一个操作 在同一视图控制器 V1 中弹出另一个名为 V2 的视图控制器 V2 的尺寸会缩小一些 使其不会填满整个
  • WPF 中的 InvokeRequired [重复]

    这个问题在这里已经有答案了 我在一个中使用了这个函数Windows forms应用 delegate void ParametrizedMethodInvoker5 int arg private void log left accs in
  • 在 Pandas DataFrame 中拆分列表

    我有一个包含多列的 csv 文件 使用 pandas 我将此 csv 文件读入数据帧 并有一个日期时间索引和五六个其他列 其中一列是时间戳列表 下面带有索引的示例 CreateDate TimeStamps 4 1 11 Timestamp
  • 我想隐藏工具提示中的标签,因为它显示未定义

    我正在使用 Chart js 来显示折线图 如何隐藏 Chart js 折线图的工具提示标签 工具提示中的标签显示undefined所以我想隐藏标签 请参见屏幕截图 也许有一种方法可以修改工具提示 让我只能在工具提示中显示图例值 我的代码如
  • 如何在 Intellij IDEA 实时模板 groovy 脚本中将变量传递给 groovy 代码?

    我有一个groovyScript in my IntellijIDEA 实时模板 如下所示 groovyScript D test groovy v1 on my D test groovy我有这样的代码 if v1 abc abc 现在我
  • 与云无关的架构? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在对一个新解决方案进行一些架构工作 该解决方案最初将在 Windows Azure 中运行 不过 我希望解决方案 或至少是架构 设计 与云无
  • Firebase 事件未从 Android 服务记录

    我的 Android 应用程序中有一个音乐流媒体服务 我试图使用 Fire base 事件日志记录流媒体音乐 我相应地实现了所有内容 我可以从我的活动中看到事件 但不能从我的服务中看到事件 我是否遗漏了某些内容 或者 firebase 不支
  • 如何捕获 PHP 中的 cURL 错误

    我在用PHP curl功能 https php net manual en ref curl php将数据从我的本地计算机发布到网络服务器 我的代码如下 c curl init curl setopt c CURLOPT URL url c
  • 动态创建消费者spring kafka

    我正在创建一个与另一个服务通信的服务 以便识别要收听的 kafka 主题 kafka主题可能有不同的键和值类型 因此 我想为每个配置 主题 键类型 值类型 动态创建不同的 kafka 消费者 其中配置仅在运行时已知 然而在 spring k
  • ASP.net kerberos 偶尔下降到 NTLM

    背景 仅相关部分 我们有一个大型 Intranet asp net 2 0 3 5 应用程序 Web服务器是AD域上的Windows Server 2003 客户端使用 Windows IE 6 8 Windows 身份验证 具有从 Win
  • PHP内部hashCode函数

    我正在寻找与 JAVA 等效的 PHP SomeString hashCode 功能 我正在寻找的 hashCode 应该与 PHP 中用于索引 Hashmap 的 hashCode 相同 我希望你可以帮助我 EDIT 好的 找到了我正在搜