| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 | <?php/** * PHPExcel * * Copyright (c) 2006 - 2011 PHPExcel * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA * * @category   PHPExcel * @package    PHPExcel_Shared * @copyright  Copyright (c) 2006 - 2011 PHPExcel (http://www.codeplex.com/PHPExcel) * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL * @version    1.7.6, 2011-02-27 *//** * PHPExcel_Shared_File * * @category   PHPExcel * @package    PHPExcel_Shared * @copyright  Copyright (c) 2006 - 2011 PHPExcel (http://www.codeplex.com/PHPExcel) */class PHPExcel_Shared_File{	/**	  * Verify if a file exists	  *	  * @param 	string	$pFilename	Filename	  * @return bool	  */	public static function file_exists($pFilename) {		// Sick construction, but it seems that		// file_exists returns strange values when		// doing the original file_exists on ZIP archives...		if ( strtolower(substr($pFilename, 0, 3)) == 'zip' ) {			// Open ZIP file and verify if the file exists			$zipFile 		= substr($pFilename, 6, strpos($pFilename, '#') - 6);			$archiveFile 	= substr($pFilename, strpos($pFilename, '#') + 1);			$zip = new ZipArchive();			if ($zip->open($zipFile) === true) {				$returnValue = ($zip->getFromName($archiveFile) !== false);				$zip->close();				return $returnValue;			} else {				return false;			}		} else {			// Regular file_exists			return file_exists($pFilename);		}	}	/**	 * Returns canonicalized absolute pathname, also for ZIP archives	 *	 * @param string $pFilename	 * @return string	 */	public static function realpath($pFilename) {		// Returnvalue		$returnValue = '';		// Try using realpath()		if (file_exists($pFilename)) {			$returnValue = realpath($pFilename);		}		// Found something?		if ($returnValue == '' || is_null($returnValue)) {			$pathArray = explode('/' , $pFilename);			while(in_array('..', $pathArray) && $pathArray[0] != '..') {				for ($i = 0; $i < count($pathArray); ++$i) {					if ($pathArray[$i] == '..' && $i > 0) {						unset($pathArray[$i]);						unset($pathArray[$i - 1]);						break;					}				}			}			$returnValue = implode('/', $pathArray);		}		// Return		return $returnValue;	}	/**	 * Get the systems temporary directory.	 *	 * @return string	 */	public static function sys_get_temp_dir()	{		// sys_get_temp_dir is only available since PHP 5.2.1		// http://php.net/manual/en/function.sys-get-temp-dir.php#94119		if ( !function_exists('sys_get_temp_dir')) {			if ($temp = getenv('TMP') ) {				if (file_exists($temp)) { return realpath($temp); }			}			if ($temp = getenv('TEMP') ) {				if (file_exists($temp)) { return realpath($temp); }			}			if ($temp = getenv('TMPDIR') ) {				if (file_exists($temp)) { return realpath($temp); }			}			// trick for creating a file in system's temporary dir			// without knowing the path of the system's temporary dir			$temp = tempnam(__FILE__, '');			if (file_exists($temp)) {				unlink($temp);				return realpath(dirname($temp));			}			return null;		}		// use ordinary built-in PHP function		//	There should be no problem with the 5.2.4 Suhosin realpath() bug, because this line should only		//		be called if we're running 5.2.1 or earlier		return realpath(sys_get_temp_dir());	}}
 |