HEX
Server: Apache/2
System: Linux vps33975.sdns.vn 3.10.0-1160.15.2.el7.x86_64 #1 SMP Wed Feb 3 15:06:38 UTC 2021 x86_64
User: agritom (1060)
PHP: 7.4.33
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: /home/agritom/public_html/wp-content/plugins/loco-translate/src/error/ParseException.php
<?php
/**
 * Exception thrown when parsing fails
 */
class Loco_error_ParseException extends Loco_error_Exception {

    /**
     * @var string[]
     */
    private $context;

    /**
     * @param int line number
     * @param int column number
     * @param string source in which to identify line and column
     * @return self
     */
    public function setContext( $line, $column, $source ){
        $this->context = [];
        $lines = preg_split( '/\\r?\\n/', $source, $line+1 );
        $offset = $line - 1;
        if( isset($lines[$offset]) ){
            $this->context[] = $lines[$offset];
            $this->context[] = str_repeat(' ', max(0,$column-1) ).'^';
        }
        $this->message = sprintf("Error at line %u, column %u: %s", $line, $column, $this->message );
        return $this;
    }


    /**
     * @param int zero-based offset to failure point
     * @param string source in which to identify line and column
     * @return self
     */
    public function setOffsetContext( $offset, $source ){
        $lines = preg_split( '/\\r?\\n/', substr($source,0,$offset) );
        $line = count($lines);
        $column = 1 + strlen( end($lines) );
        return $this->setContext( $line, $column, $source );
    }


    /**
     * @return string
     */
    public function getContext(){
        return is_array($this->context) ? implode("\n",$this->context) : '';
    }

}