/** * Loads DBF file if supported * * @return boolean */ private function _openDBFFile() { if (!ShapeFile::supports_dbase()) { $this->DBFFile = null; return true; } $dbf_name = $this->_getFilename('.dbf'); if (is_readable($dbf_name)) { $this->DBFFile = @dbase_open($dbf_name, 0); if (!$this->DBFFile) { $this->setError(sprintf('It wasn\'t possible to open the DBase file "%s"', $dbf_name)); return false; } } else { $this->setError(sprintf('It wasn\'t possible to find the DBase file "%s"', $dbf_name)); return false; } return true; }
/** * Saves record to files * * @param file &$SHPFile Opened SHP file * @param file &$DBFFile Opened DBF file * @param integer $recordNumber Record number * * @return void */ public function saveToFile(&$SHPFile, &$DBFFile, $recordNumber) { $this->SHPFile = $SHPFile; $this->DBFFile = $DBFFile; $this->recordNumber = $recordNumber; $this->_saveHeaders(); switch ($this->shapeType) { case 0: // Nothing to save break; case 1: $this->_savePointRecord(); break; case 21: $this->_savePointMRecord(); break; case 11: $this->_savePointZRecord(); break; case 3: $this->_savePolyLineRecord(); break; case 23: $this->_savePolyLineMRecord(); break; case 13: $this->_savePolyLineZRecord(); break; case 5: $this->_savePolygonRecord(); break; case 25: $this->_savePolygonMRecord(); break; case 15: $this->_savePolygonZRecord(); break; case 8: $this->_saveMultiPointRecord(); break; case 28: $this->_saveMultiPointMRecord(); break; case 18: $this->_saveMultiPointZRecord(); break; default: $this->setError(sprintf('The Shape Type "%s" is not supported.', $this->shapeType)); break; } if (ShapeFile::supports_dbase() && !is_null($this->DBFFile)) { $this->_saveDBFData(); } }