I am working on migrating a php website and getting the following statement
"preg_replace(): The /e modifier is no longer supported, use preg_replace_callback".
When changing to preg_replace_callback, I get an error message "preg_replace_callback(): Requires argument 2, '$this->('\1')', to be a valid callback".
Code:
function getFile($filename)
{
    if ($filename{0} == '/' && substr($this->fileRoot, -1) == '/') {
        $filename = substr($filename, 1);
    }
    $filename = $this->fileRoot . $filename;
    if (!($fh = @fopen($filename, 'r'))) {
        $this->err[] = PEAR::raiseError(
            $this->errorMessage(IT_TPL_NOT_FOUND) . ': "' .$filename .'"',
            IT_TPL_NOT_FOUND
        );
        return "";
    }
    $fsize = filesize($filename);
    if ($fsize < 1) {
        fclose($fh);
        return '';
    }
    $content = fread($fh, $fsize);
    fclose($fh);
    return preg_replace(
        "#<!-- INCLUDE (.*) -->#ime",
        "\$this->$getFile('\\1')",
        $content
    );
} // end func getFile
    /** change from preg_replace to preg_replace_callback */
    return preg_replace_callback(
        "#<!-- INCLUDE (.*) -->#ime",
        "\$this->$getFile('\\1')",
        $content
Thanks in Advance.
 
     
    