!C99Shell v. 1.0 pre-release build #13!

Software: Apache. PHP/5.5.15 

uname -a: Windows NT SVR-DMZ 6.1 build 7600 (Windows Server 2008 R2 Enterprise Edition) i586 

SYSTEM 

Safe-mode: OFF (not secure)

C:\Intranet\C\xampp\php\PEAR\XML\   drwxrwxrwx
Free 4.09 GB of 39.52 GB (10.36%)
Detected drives: [ a ] [ c ] [ d ] [ e ] [ f ]
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     image2svg.php (9.57 KB)      -rw-rw-rw-
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4                                                        |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2002 The PHP Group                                |
// +----------------------------------------------------------------------+
// | This source file is subject to version 2.0 of the PHP license,       |
// | that is bundled with this package in the file LICENSE, and is        |
// | available at through the world-wide-web at                           |
// | http://www.php.net/license/2_02.txt.                                 |
// | If you did not receive a copy of the PHP license and are unable to   |
// | obtain it through the world-wide-web, please send a note to          |
// | license@php.net so we can mail you a copy immediately.               |
// +----------------------------------------------------------------------+
// | Authors: Urs Gehrig <urs@circle.ch>                                  |
// +----------------------------------------------------------------------+
//
// $Id: image2svg.php,v 1.1 2002/05/01 21:31:37 chregu Exp $

/**
* XML_image2svg - Image to SVG conversion
*
* The class converts images, such as of the format JPEG, PNG
* and GIF to a standalone SVG representation. The image is being 
* encoded by the PHP native encode_base64() function. You can use it
* to get back a complete SVG file, which is based on a predefinded,
* easy adaptable template file, or you can take the encoded
* file as a return value, using the get() method. Due to the 
* encoding by base64, the SVG files will increase approx. 30% in
* size compared to the conventional image.
*
* NOTE: 
*   Since PHP 4.0.5 GetImageSize() support has been added.
*
* EXAMPLE:
*   $i = &new XML_image2svg("test.jpg" );
*   $i->tplFile = "tpl.image.svg";
*   $i->show();
*
*   The class allows also commandline conversion of images:
*   C:\>php-cli -f Test_image2svg.php > test.svg
*
* REFERENCES:
*   http://www.ietf.org/rfc/rfc2397.txt, The "data" URL scheme
*   http://www.ietf.org/rfc/rfc2045.txt, Multipurpose Internet Mail Extensions
*   http://www.w3.org/Graphics/SVG/, Scalable Vector Graphics (SVG)
*/

/**
* Image to svg conversion.
*
*
* @version  $Id: image2svg.php,v 1.1 2002/05/01 21:31:37 chregu Exp $
* @package  XML
* @author   Urs Gehrig <urs@circle.ch> 
*/
require_once( "PEAR.php") ;
require_once( 
"HTML/IT.php") ;    

class 
XML_image2svg extends PEAR {

    
/**
    * TODO: Modify the quality of the output image. Needs GD support.
    *
    * @var imageQuality
    */
    
var $imageQuality 0.8;
    
    
/** 
    * Image file pointer. 
    *
    */
    
var $fp null;
        
    
/**
    * Storage representation of the image string
    *
    * @var  string
    */
    
var $buffer "";
    
    
/**
    * Image information
    *
    * @var  array
    */
    
var $par = array(000"" );    
    
    
/**
    * Constructs a new XML_image2svg object.
    *
    * @param string image filename    
    * @access public
    * @author Urs Gehrig <urs@circle.ch>
    */
    
function XML_image2svg ($fileName="" )
    {
        
$this->PEAR();
        
$this->fileName $fileName;
        
$this->tpl      = new IntegratedTemplate("." );
        
$this->tplFile  "";
        
        
$this->_getImage();
    }

    
/**
    * Read the image file binary-safe
    *
    * @access private
    * @return mixed bool on success or an error object otherwise
    * @author Urs Gehrig <urs@circle.ch>     
    */
    
function _getImage ()
    {        
        if(
file_exists($this->fileName )) {
            
$fp fopen ($this->fileName"rb" );
            
$this->buffer fread($fpfilesize ($this->fileName ));
            
            if (!
$fp) {
                return 
$this->errorHandler("FAILED_OPENING_FILE"__FILE____LINE__ );
            }
            
            
$this->fp $fp;
            
fclose ($fp);
             
            return 
$this->_getImageParamteres();
        }
        return 
$this->errorHandler("FILE_NOT_FOUND"__FILE____LINE__ );         
    }
    
    
/**
    * Get the specific image parameters
    *
    * @access private
    * @return mixed bool on success or an error object on fail
    * @author Urs Gehrig <urs@circle.ch>      
    */    
    
function _getImageParamteres ()
    {
        if (
is_resource($this->fp )) {
            
$this->par = @getimagesize($this->fileName );
            SWITCH (
$this->par[2] ) {
                case 
1:
                    
$this->imagetype 'image/gif';
                    break;
                case 
2:
                    
$this->imagetype 'image/jpg';
                    break;
                case 
3:
                    
$this->imagetype 'image/png';
                    break;
                default:
                    return 
$this->errorHandler("MIME_ERROR"__FILE____LINE__ );    
            }
            return 
TRUE;
        }
        return 
$this->errorHandler("READ_ERROR"__FILE____LINE__ );
    }
    
    
/**
    * Convert the image to an SVG file. Having specified a template file
    * allows direct inclusion of the image into a more sophisticated SVG file;
    * while not giving a template file, a most slim standalone SVG string will
    * be returned.
    * 
    * @access private
    * @return mixed a string on success or an error object otherwise
    * @author Urs Gehrig <urs@circle.ch>      
    */    
    
function _convertToSvg ()
    {
        if(
file_exists($this->tplFile ) ) {
            
            if(
strlen($this->tplFile )) {
                
$this->tpl->loadTemplatefile($this->tplFiletruetrue);
                
$content = array(
                    
"img_width"         =>  $this->par[0],
                    
"img_height"        =>  $this->par[1],
                    
"data_url_scheme"   =>  sprintf("data:%s;base64,%s"
                                                
$this->imagetype,
                                                
$this->encodeImage()
                                            )
                );          
                
$this->tpl->setVariable($content);  
                
                return 
$this->tpl->get();
                
            } else {
                
$s .= sprintf("<?xml version=\"1.0\" ?>" );
                
$s .= sprintf("<svg %s viewBox=\"0 0 %s %s\" xml:space=\"preserve\">",
                            
$this->par[3],
                            
$this->par[0],
                            
$this->par[1]
                );   
                
$s .= sprintf("<g><image %s xlink:href=\"data:%s;base64,%s\"  /></g>"
                            
$this->par[3],
                            
$this->imagetype,
                            
$this->encodeImage()
                );
                
$s .= sprintf("</svg>");
                
                return 
$s;
            }
            
        } else {
            return 
$this->errorHandler("TEMPLATE_FILE_MISSING"__FILE____LINE__ );
        }
    }

    
/**
    * Encode image by base 64
    *
    * @access public
    * @return string Returns encoded image as string
    * @author Urs Gehrig <urs@circle.ch>      
    */    
    
function encodeImage ()
    {
        return 
base64_encode($this->buffer );
    }
        
    
/**
    * Return the SVG output
    *
    * @access public
    * @return mixed PEAR_Error object or string
    * @author Urs Gehrig <urs@circle.ch>      
    */    
    
function get () 
    {
        if (
is_resource($this->fp )) {
            return 
$this->_convertToSvg();
        }
        return 
$this->errorHandler("CONVERSION"__FILE____LINE__ );;        
    }

    
/**
    * Display the SVG output
    *
    * @access public
    * @return mixed PEAR_Error object or bool on success
    * @author Urs Gehrig <urs@circle.ch>     
    */
    
function show () 
    {
        if (
$res $this->get() ) {
            
header("Content-type: image/svg+xml" );
            echo 
$res;
            return 
TRUE;
        }
        return 
$this->errorHandler("UNKNOWN"__FILE____LINE__ );
    }
    
    
/**
    * Handling the error messages
    *
    * @param string error message
    * @param string file where the error occured
    * @param string linenumber where the error occured    
    * @access public
    * @return object PEAR_Error object
    * @author Urs Gehrig <urs@circle.ch>     
    */
    
function errorHandler ($err="UNKNOWN"$file=__FILE__$line=__LINE__ )
    {
        
$this->error_codes = array (
            
"FILE_NOT_FOUND"        => "The image file could not be found.",
            
"FAILED_OPENING_FILE"   => "The image file could not be opened.",
            
"READ_ERROR"            => "The image file could not be read.",
            
"MIME_ERROR"            => "Unsupported mimetype.",
            
"TEMPLATE_FILE_MISSING" => "The SVG template file is missing.",
            
"CONVERSION"            => "Error on returning the conversion result.",
            
"UNKNOWN"               => "Unknown error."
        
);

        return 
$this->raiseError(sprintf("%s [%s on line %d]."
                    
$this->error_codes[$err], 
                    
$file
                    
$line ), 
                    
null,
                    
PEAR_ERROR_DIE 
               
);    
    }
    
    
/**
    * Class destructor
    *
    * @access private
    * @author Urs Gehrig <urs@circle.ch>       
    */
    
function _XML_image2svg ()
    {
        
$this->_PEAR();
    }    
}
?>

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 1.0 pre-release build #13 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.0312 ]--