PHP“调用未定义的函数strtolower”

时间:2019-12-23 14:51:21

标签: php

我们有使用标准功能strtolower的代码。

但是,有时会随机出现以下错误:

Fatal error: Uncaught Error: Call to undefined function strtolower() in /path/xxxx.php:20
Stack trace:
#0 /path/xxxx.php(63): ffff()
#1 {main} thrown in /path/xxxx.php on line 20

只要我可以检查strtolower是标准功能,它不依赖任何内容,并且应该始终可用?

更新:

我无法透露代码,但是是这样的:

function browser_check(){
    foreach($_REQUEST as $key => $data){
        $data = strtolower($data);

         // check for SQL injections and other hacks
    }
}

browser_check();

没有包含或名称空间。我们使用php.ini将该文件“前缀”在我们网站上的任何其他代码之前执行。

如果在带名称空间的文件中添加前缀,我将检查会发生什么情况。

谁知道,可能是PHP错误:)

更新为什么要重新打开问题

问题不是“为什么我的功能不起作用”的标准问题。
这是PHP错误或服务器配置错误。

如果可以的话,我会提供有关该问题的更多信息,但是目前没有足够的信息。

我们试图从两周后开始理解它,但是没有成功。

更新

此刻,我要这样离开。我不确定是否可以file_put_contents使用它,

    try{
        $data = strtolower($data);
    }catch(Exception $e){
    }

更新

尝试/捕获显然对这里没有帮助。

当前我将其保留为:

    if (function_exists('strtolower')){
        $data = strtolower($data);
    }

与此同时,我使用HEX编辑器检查了文件。空间是真实空间0x20。

我也开始记录POST / GET数据,我至少看到有时候没有$ _REQUEST要处理,例如foreach循环不会在内部执行代码,因此问题出在PHP linter中。

朋友能够在Google中看到很多有关类似问题的结果,但是没有结果是非常有用的。搜索是“调用未定义函数:strtolower”。

更新

即使代码是这样,我们仍然会出错:

            if (function_exists('strtolower')){
                    $data = strtolower($data);
            }

然后我们像这样进行更改,并再次出现错误:

            try{
                    $data = \strtolower($data);
            }catch(\Error $e){
            }

1 个答案:

答案 0 :(得分:1)

事实证明,动态链接存在一些问题。

我想系统的某些软件包(例如libc.so)已更新,然后开始出现奇怪的行为。

我要做的就是停止Apache,然后重新启动。