Файловый менеджер - Редактировать - /home/lmsyaran/public_html/administrator/components/com_hikashop/helpers/spreadsheet.php
Назад
<?php /** * @package HikaShop for Joomla! * @version 2.2.3 * @author hikashop.com * @copyright (C) 2010-2013 HIKARI SOFTWARE. All rights reserved. * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html */ defined('_JEXEC') or die('Restricted access'); ?><?php class hikashopSpreadsheetHelper { var $format; var $filename; var $separator; var $currLine; var $buffer; var $forceQuote; var $progressive; var $headerSent; function __construct() { $this->init(); } function init($format = 'csv', $filename = 'export', $sep = ';', $forceQuote = false) { $this->currLine = -1; $this->buffer = ''; $this->separator = ';'; $this->filename = $filename; $this->forceQuote = $forceQuote; $this->progressive = false; $this->headerSent = false; switch( strtolower($format) ) { case 'xls': $this->format = 1; break; default: case 'csv': $this->format = 0; $this->separator = $sep; break; } if( empty($this->filename) ) $this->filename = 'export'; if( $this->format == 1 ) $this->filename .= '.xls'; else $this->filename .= '.csv'; if( $this->format == 1 ) $this->buffer .= pack("ssssss", 0x809, 0x8, 0x0, 0x10, 0x0, 0x0); } function send() { if(!$this->headerSent) { if( $this->format == 1 ) $this->buffer .= pack("ss", 0x0A, 0x00); header('Pragma: public'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Content-Type: application/force-download'); header('Content-Type: application/octet-stream'); header('Content-Type: application/download'); header('Content-Disposition: attachment;filename='.$this->filename.' '); header('Content-Transfer-Encoding: binary '); if(!$this->progressive) { header('Content-Length: '.strlen($this->buffer)); } $this->headerSent = true; } echo $this->buffer; $this->buffer = ''; if(!$this->progressive) exit; } function flush() { if($this->progressive){ if(!$this->headerSent) { $this->send(); } else { echo $this->buffer; $this->buffer = ''; } } } function writeNumber($row, $col, $value, $lastOne) { if( $this->format == 1 ) { $this->currLine = $row; $this->buffer .= pack("sssss", 0x203, 14, $row, $col, 0x0); $this->buffer .= pack("d", $value); } else { if( $this->currLine < $row ) $this->newLine(); $this->currLine = $row; $this->buffer .= $value; if(!$lastOne) $this->buffer .= $this->separator; } } function writeText($row, $col, $value, $lastOne) { if( $this->format == 1 ) { $this->currLine = $row; $len = strlen($value); $this->buffer .= pack("ssssss", 0x204, 8 + $len, $row, $col, 0x0, $len); $this->buffer .= $value; } else { if( $this->currLine < $row ) $this->newLine(); $this->currLine = $row; if( empty($value) ) { $value = '""'; } elseif( strpos($value, '"') !== false ) { $value = '"' . str_replace('"','""',$value) . '"'; } elseif( $this->forceQuote || (strpos($value, $this->separator) !== false) || (strpos($value, "\n") !== false) || (trim($value) != $value) ) { $value = '"' . $value . '"'; } $this->buffer .= $value; if(!$lastOne) $this->buffer .= $this->separator; } } function newLine() { if( $this->format == 0 ) { $this->buffer .= "\r\n"; } } function writeLine($data) { $i = 0; $this->currLine++; if( $this->currLine > 0 ) $this->newLine(); end($data); $last = key($data); reset($data); foreach($data as $k => $value) { $lastOne = false; if ($last===$k) $lastOne = true; if(is_array($value)) continue; if( is_numeric($value) ) { $this->writeNumber($this->currLine, $i++, $value, $lastOne); } else { $this->writeText($this->currLine, $i++, $value, $lastOne); } } if($this->progressive) { $this->flush(); } } }
| ver. 1.4 |
Github
|
.
| PHP 8.1.33 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка