| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 | 
							- <?php
 
- /**
 
-  * Simple Check file : checking your system about php-zip module
 
-  * The output file checkresult.odt must be readable by an oasis document application as openoffice.org
 
-  * You need PHP 5.2 at least
 
-  * You need Zip Xml Extensions (or PclZip library instead if Zip extension)
 
-  * Encoding : ISO-8859-1
 
-  *
 
-  * @copyright  GPL License 2008 - Julien Pauli - Cyril PIERRE de GEYER - Anaska (http://www.anaska.com)
 
-  * @license    http://www.gnu.org/copyleft/gpl.html  GPL License
 
-  * SVN Revision - $Rev: 36 $
 
-  * Last commit by $Author: neveldo $
 
-  * Date - $Date: 2009-06-04 15:45:12 +0200 (jeu., 04 juin 2009) $
 
-  * SVN Revision - $Rev: 36 $
 
-  * Id : $Id: simplecheck.php 36 2009-06-04 13:45:12Z neveldo $
 
-  */
 
- 	//  instantiate the Exception class
 
- 	class OdfException extends Exception{}
 
- 	// checking php-zip module
 
- 	if ( !class_exists('ZipArchive') )
 
- 	{
 
- 	  throw new OdfException('ZipArchive extension not loaded - check your php settings, PHP5.2 minimum with php-zip extension is required');
 
- 	}
 
- 	// checking php-xml module
 
- 	if ( !class_exists('DOMDocument') )
 
- 	{
 
- 	  throw new OdfException('DOMDocument extension not loaded - check your php settings, PHP5.2 minimum with php-xml extension is required');
 
- 	}
 
- 	// start code ...
 
- 	$filename = "simplecheck.odt"; // must exist in same path as this script
 
- 	// load the oasis document via php-lib library
 
- 	$file = new ZipArchive();
 
- 	if ( $file->open($filename) !== true )
 
- 	{
 
- 	  throw new OdfException("Error while Opening the file '$filename' - Check your odt file");
 
- 	}
 
- 	// read content.xml from the oasis document
 
- 	if (($contentXml = $file->getFromName('content.xml')) === false)
 
- 	{
 
- 	  throw new OdfException("Nothing to parse - check that the content.xml file is correctly formed");
 
- 	}
 
- 	// close the original oasis document
 
- 	$file->close();
 
- 	// for futur use, with load content.xml via DOMDocument library :
 
- 	$odt_content = new DOMDocument('1.0', 'utf-8');
 
- 	if ($odt_content->loadXML( $contentXml ) == FALSE)
 
- 	{
 
- 	  throw new OdfException('Unable to load content.xml by DOMDocument library ', __METHOD__);
 
- 	}
 
- 	// here, we dont use the temp function but local temporary file
 
- 	    
 
- 	$tmpfile = md5(uniqid()).'.odt';
 
- 	if( !@copy($filename, $tmpfile) );
 
- 	{
 
- 	    // we do not test, because sometime it return false anyway !!
 
- 	    // $errors = error_get_last();
 
- 	    // throw new OdfException("Can not copy the tempfile in $tmpfile :[".$errors['message'] ."]/[".$errors['type']."]");        
 
- 	}
 
- 	// futur use here : $odt_content modifications ...
 
- 	// open the temporary zipfile
 
- 	if( $file->open($tmpfile, ZIPARCHIVE::CREATE) != TRUE )
 
- 	{
 
- 	  @unlink($tmpfile); // erase temporary file
 
- 	  throw new OdfException("Error while Opening the tempfile '$tmpfile' - Check your odt file");
 
- 	}
 
- 	// for futur use here : with overwrite content.xml in zip file via DOMDocument library :
 
- 	if (! $file->addFromString('content.xml', $odt_content->saveXML()) )
 
- 	{
 
- 		 @unlink($tmpfile); // erase temporary file
 
- 	    throw new OdfException('Error during file export');
 
- 	}
 
-         
 
- 	// close the temporary zipfile
 
- 	$file->close();
 
- 	// send the new checkresult.odt file via http :
 
- 	$name = "checkresult.odt";
 
- 	$size = filesize($tmpfile);
 
- 	header('Content-type: application/vnd.oasis.opendocument.text');
 
- 	header('Content-Disposition: attachment; filename="'.$name.'"');
 
- 	header("Content-Length: ".$size); 
 
- 	readfile($tmpfile); // output
 
- 	@unlink($tmpfile); // erase temporary file
 
- 	exit; // be sure nothing else is write after
 
- ?>
 
 
  |