PHP注意:未初始化的字符串偏移量:87

时间:2018-03-21 09:17:19

标签: php

知道问题是什么?它生成9GB +错误日志文件。

// restore noise to html content
        function restore_noise($text) {
            while (($pos=strpos($text, '___noise___'))!==false) {
                $key = '___noise___'.$text[$pos+11].$text[$pos+12].$text[$pos+13];
                if (isset($this->noise[$key]))
                    $text = substr($text, 0, $pos).$this->noise[$key].substr($text, $pos+14);
            }
            return $text;
        }

1 个答案:

答案 0 :(得分:0)

这意味着索引87不存在于其中一个目标数组上。 在调用它之前,你还应该在最高使用的$ text [$ pos](+13)上使用isset()。

// restore noise to html content
    function restore_noise($text) {
        while (($pos=strpos($text, '___noise___'))!==false
               && isset($text[$pos+13])) /*check the position index exists, or stop. (maybe you want to check this below instead of in the while statement, unless any undefined index is a reason to stop altogether*/{
            $key = '___noise___'.$text[$pos+11].$text[$pos+12].$text[$pos+13];
            if (isset($this->noise[$key]))
                $text = substr($text, 0, $pos).$this->noise[$key].substr($text, $pos+14);
        }
        return $text;
    }