为什么PHP库功能会消失?

时间:2020-07-02 23:15:46

标签: php com guid

我从一个非营利组织那里接到了一个惊慌的电话,告诉我用户无法注册。我戳了表单处理器,发现它死在了这个宝石上:

$uid = trim(com_create_guid(), '{}');

这行代码已经完成了四年的工作。我将其放入页面:

function_exists('com_create_guid')

...这告诉我它不再存在。从数据库中的日期来看,该功能的最后一次运行时间是6月3日(现在是7月2日)。我与ISP的支持取得联系,并经历了三个层次,直到获得了真正的程序员。他让我更改了PHP版本并启用了一些可能的功能,但功能仍然消失了。从那以后,我进入了一种解决方法,但是我想知道是否有人知道为什么这只会简单地消失。 (而且我知道有人会问谁是ISP,所以我会注意到它是GoDaddy。)

1 个答案:

答案 0 :(得分:0)

此处讨论了一个非常类似的问题:com_create_guid() function got error on server side but works fine in local using php

正如评论中提到的那样,似乎COM扩展名已被禁用或已从Windows中删除。

尝试用PHP docs

中的那个替换
function guidv4()
{
    if (function_exists('com_create_guid') === true)
        return trim(com_create_guid(), '{}');

    $data = openssl_random_pseudo_bytes(16);
    $data[6] = chr(ord($data[6]) & 0x0f | 0x40); // set version to 0100
    $data[8] = chr(ord($data[8]) & 0x3f | 0x80); // set bits 6-7 to 10
    return vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($data), 4));
}
相关问题