PHP随机密码生成器报错求助:Call to undefined function split()
解决PHP随机密码生成器中
split()函数未定义的错误 嘿,这个问题其实挺常见的——你碰到的致命错误,核心原因是split()函数在PHP 7及更高版本里已经被彻底移除了。它属于PHP早期的字符串处理函数,早就被官方弃用并从语言中删除,所以在新版本的PHP环境里调用它,必然会触发“未定义函数”的报错。
解决方法特别简单,直接把代码里的split()替换成explode()就行。因为你这里是用逗号来拆分字符集参数(比如'lower_case,upper_case,numbers'这种格式),explode()是专门用来按固定分隔符拆分字符串的工具,完全能满足需求,而且性能比旧的split()还要好。
给你举个具体的修改例子,假设你第26行的原代码是:
$charSets = split(',', $availableChars);
把它改成:
$charSets = explode(',', $availableChars);
如果之后你遇到需要按正则表达式拆分字符串的场景(比如处理多个不同分隔符),可以用preg_split(),比如:
$charSets = preg_split('/,/', $availableChars);
不过针对你当前的需求,explode()就足够用了。
另外多提一句,如果你的代码里还有其他类似的旧版PHP函数(比如ereg()、ereg_replace()这类),最好也一并替换成对应的新版函数(比如preg_match()、preg_replace()),避免后续再遇到类似的兼容性问题。
内容的提问来源于stack exchange,提问作者Saurabh MeanMachine
相关产品推荐
相关产品推荐

