add check img type by data
This commit is contained in:
parent
113a0f1d62
commit
01de45e729
@ -1,140 +1,147 @@
|
||||
<?php
|
||||
/*文件扩展名说明
|
||||
*7173 gif *255216 jpg *13780 png *6677 bmp *239187 txt,aspx,asp,sql *208207 xls.doc.ppt *6063 xml *6033 htm,html *4742 js
|
||||
*8075 xlsx,zip,pptx,mmap,zip *8297 rar *01 accdb,mdb *7790 exe,dll *5666 psd *255254 rdp *10056 bt种子 *64101 bat
|
||||
*/
|
||||
function getFileType( $file ){
|
||||
$fp = fopen($file, "rb");
|
||||
$bin = fread($fp, 2); //只读2字节
|
||||
fclose($fp);
|
||||
$str_info = @unpack("C2chars", $bin);
|
||||
$type_code = intval($str_info['chars1'].$str_info['chars2']);
|
||||
$file_type = '';
|
||||
switch ($type_code) {
|
||||
case 239187:
|
||||
$file_type = 'txt';
|
||||
break;
|
||||
case 7784:
|
||||
$file_type = 'midi';
|
||||
break;
|
||||
case 8075:
|
||||
$file_type = 'zip';
|
||||
break;
|
||||
case 8297:
|
||||
$file_type = 'rar';
|
||||
break;
|
||||
case 255216:
|
||||
$file_type = 'jpg';
|
||||
break;
|
||||
case 7173:
|
||||
$file_type = 'gif';
|
||||
break;
|
||||
case 6677:
|
||||
$file_type = 'bmp';
|
||||
break;
|
||||
case 13780:
|
||||
$file_type = 'png';
|
||||
break;
|
||||
default:
|
||||
$file_type = 'unknown';
|
||||
break;
|
||||
}
|
||||
return $file_type;
|
||||
}
|
||||
function isAjax(){
|
||||
if( isset( $GLOBALS['__isAjax'] ) ){
|
||||
return $GLOBALS['__isAjax'];
|
||||
}
|
||||
$headers = apache_request_headers();
|
||||
$GLOBALS['__isAjax'] = (isset( $headers['X-Requested-With'] ) && ( $headers['X-Requested-With'] == 'XMLHttpRequest' )) || (isset( $headers['x-requested-with'] ) && ($headers['x-requested-with'] == 'XMLHttpRequest' ));
|
||||
return $GLOBALS['__isAjax'];
|
||||
}
|
||||
function c( $name ){
|
||||
if( !isset( $GLOBALS['__config'] ) ){
|
||||
$__config = NULL;
|
||||
include( ENGINE.'config/core.config.php' );
|
||||
include( ROOT.'config/app.config.php' );
|
||||
$GLOBALS['__config'] = $__config;
|
||||
}
|
||||
if( isset( $GLOBALS['__config'][$name] ) ){
|
||||
return $GLOBALS['__config'][$name];
|
||||
}
|
||||
else{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
function db(){
|
||||
if( !$GLOBALS['__db'] ){
|
||||
$GLOBALS['__db'] = new Db();
|
||||
}
|
||||
return $GLOBALS['__db'];
|
||||
}
|
||||
function get_ip() {
|
||||
if (isSet($_SERVER)) {
|
||||
if (isSet($_SERVER["HTTP_X_FORWARDED_FOR"])) {
|
||||
$realip = $_SERVER["HTTP_X_FORWARDED_FOR"];
|
||||
} elseif (isSet($_SERVER["HTTP_CLIENT_IP"])) {
|
||||
$realip = $_SERVER["HTTP_CLIENT_IP"];
|
||||
} else {
|
||||
$realip = $_SERVER["REMOTE_ADDR"];
|
||||
}
|
||||
} else {
|
||||
if ( getenv( 'HTTP_X_FORWARDED_FOR' ) ) {
|
||||
$realip = getenv( 'HTTP_X_FORWARDED_FOR' );
|
||||
} elseif ( getenv( 'HTTP_CLIENT_IP' ) ) {
|
||||
$realip = getenv( 'HTTP_CLIENT_IP' );
|
||||
} else {
|
||||
$realip = getenv( 'REMOTE_ADDR' );
|
||||
}
|
||||
}
|
||||
return current( explode(',' , $realip ) );
|
||||
}
|
||||
function v( $str ){
|
||||
return getDataFromArray( $str , $_REQUEST );
|
||||
}
|
||||
function p( $str ){
|
||||
return getDataFromArray( $str , $_POST );
|
||||
}
|
||||
function getDataFromArray( $array , $data ){
|
||||
if( is_array( $array ) ){
|
||||
$return = array();
|
||||
foreach( $array as $v ){
|
||||
if( isset( $data[$v] ) && $data[$v] !== '' ){
|
||||
$return[trim($v)] = $data[$v];
|
||||
}
|
||||
}
|
||||
return $return;
|
||||
}
|
||||
return isset( $data[$array] )?$data[$array]:false;
|
||||
}
|
||||
function render( $data , $__showPage = NULL , $layout = NULL , $layoutTpl = true ){
|
||||
$__showPage = strtolower( $__showPage);
|
||||
if( $layout == NULL ){
|
||||
$layout = 'default';
|
||||
}
|
||||
if( isAjax() ){
|
||||
$requiteFile = ROOT.'themes/'.$layout.'/ajax/'.$__showPage.'.tpl.html';
|
||||
}else{
|
||||
$requiteFile = ROOT.'themes/'.$layout.'/'.($layoutTpl?'layout':$__showPage).'.tpl.html';
|
||||
}
|
||||
if( !is_file( $requiteFile ) ){
|
||||
die('can\'t load themes '.$__showPage.' files ');
|
||||
}
|
||||
@extract( $data );
|
||||
require( $requiteFile );
|
||||
}
|
||||
if(!function_exists('apache_request_headers')) {
|
||||
function apache_request_headers(){
|
||||
foreach($_SERVER as $key=>$value){
|
||||
if (substr($key,0,5)=="HTTP_") {
|
||||
$key=str_replace(" ","-",ucwords(strtolower(str_replace("_"," ",substr($key,5)))));
|
||||
$out[$key]=$value;
|
||||
}
|
||||
}
|
||||
return $out;
|
||||
}
|
||||
}
|
||||
function safeUrlString( $str ){
|
||||
$str = urldecode($str);
|
||||
return str_replace( array( '.' , '/' ) , array() , $str );
|
||||
<?php
|
||||
/*文件扩展名说明
|
||||
*7173 gif *255216 jpg *13780 png *6677 bmp *239187 txt,aspx,asp,sql *208207 xls.doc.ppt *6063 xml *6033 htm,html *4742 js
|
||||
*8075 xlsx,zip,pptx,mmap,zip *8297 rar *01 accdb,mdb *7790 exe,dll *5666 psd *255254 rdp *10056 bt种子 *64101 bat
|
||||
*/
|
||||
function getFileTypeByRaw( $data ){
|
||||
$bin = $data[0].$data[1];
|
||||
return getFileTypeBybin( $bin );
|
||||
}
|
||||
function getFileType( $file ){
|
||||
$fp = fopen($file, "rb");
|
||||
$bin = fread($fp, 2); //只读2字节
|
||||
fclose($fp);
|
||||
return getFileTypeBybin( $bin );
|
||||
}
|
||||
function getFileTypeBybin( $bin ){
|
||||
$str_info = @unpack("C2chars", $bin);
|
||||
$type_code = intval($str_info['chars1'].$str_info['chars2']);
|
||||
$file_type = '';
|
||||
switch ($type_code) {
|
||||
case 239187:
|
||||
$file_type = 'txt';
|
||||
break;
|
||||
case 7784:
|
||||
$file_type = 'midi';
|
||||
break;
|
||||
case 8075:
|
||||
$file_type = 'zip';
|
||||
break;
|
||||
case 8297:
|
||||
$file_type = 'rar';
|
||||
break;
|
||||
case 255216:
|
||||
$file_type = 'jpg';
|
||||
break;
|
||||
case 7173:
|
||||
$file_type = 'gif';
|
||||
break;
|
||||
case 6677:
|
||||
$file_type = 'bmp';
|
||||
break;
|
||||
case 13780:
|
||||
$file_type = 'png';
|
||||
break;
|
||||
default:
|
||||
$file_type = 'unknown';
|
||||
break;
|
||||
}
|
||||
return $file_type;
|
||||
}
|
||||
function isAjax(){
|
||||
if( isset( $GLOBALS['__isAjax'] ) ){
|
||||
return $GLOBALS['__isAjax'];
|
||||
}
|
||||
$headers = apache_request_headers();
|
||||
$GLOBALS['__isAjax'] = (isset( $headers['X-Requested-With'] ) && ( $headers['X-Requested-With'] == 'XMLHttpRequest' )) || (isset( $headers['x-requested-with'] ) && ($headers['x-requested-with'] == 'XMLHttpRequest' ));
|
||||
return $GLOBALS['__isAjax'];
|
||||
}
|
||||
function c( $name ){
|
||||
if( !isset( $GLOBALS['__config'] ) ){
|
||||
$__config = NULL;
|
||||
include( ENGINE.'config/core.config.php' );
|
||||
include( ROOT.'config/app.config.php' );
|
||||
$GLOBALS['__config'] = $__config;
|
||||
}
|
||||
if( isset( $GLOBALS['__config'][$name] ) ){
|
||||
return $GLOBALS['__config'][$name];
|
||||
}
|
||||
else{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
function db(){
|
||||
if( !$GLOBALS['__db'] ){
|
||||
$GLOBALS['__db'] = new Db();
|
||||
}
|
||||
return $GLOBALS['__db'];
|
||||
}
|
||||
function get_ip() {
|
||||
if (isSet($_SERVER)) {
|
||||
if (isSet($_SERVER["HTTP_X_FORWARDED_FOR"])) {
|
||||
$realip = $_SERVER["HTTP_X_FORWARDED_FOR"];
|
||||
} elseif (isSet($_SERVER["HTTP_CLIENT_IP"])) {
|
||||
$realip = $_SERVER["HTTP_CLIENT_IP"];
|
||||
} else {
|
||||
$realip = $_SERVER["REMOTE_ADDR"];
|
||||
}
|
||||
} else {
|
||||
if ( getenv( 'HTTP_X_FORWARDED_FOR' ) ) {
|
||||
$realip = getenv( 'HTTP_X_FORWARDED_FOR' );
|
||||
} elseif ( getenv( 'HTTP_CLIENT_IP' ) ) {
|
||||
$realip = getenv( 'HTTP_CLIENT_IP' );
|
||||
} else {
|
||||
$realip = getenv( 'REMOTE_ADDR' );
|
||||
}
|
||||
}
|
||||
return current( explode(',' , $realip ) );
|
||||
}
|
||||
function v( $str ){
|
||||
return getDataFromArray( $str , $_REQUEST );
|
||||
}
|
||||
function p( $str ){
|
||||
return getDataFromArray( $str , $_POST );
|
||||
}
|
||||
function getDataFromArray( $array , $data ){
|
||||
if( is_array( $array ) ){
|
||||
$return = array();
|
||||
foreach( $array as $v ){
|
||||
if( isset( $data[$v] ) && $data[$v] !== '' ){
|
||||
$return[trim($v)] = $data[$v];
|
||||
}
|
||||
}
|
||||
return $return;
|
||||
}
|
||||
return isset( $data[$array] )?$data[$array]:false;
|
||||
}
|
||||
function render( $data , $__showPage = NULL , $layout = NULL , $layoutTpl = true ){
|
||||
$__showPage = strtolower( $__showPage);
|
||||
if( $layout == NULL ){
|
||||
$layout = 'default';
|
||||
}
|
||||
if( isAjax() ){
|
||||
$requiteFile = ROOT.'themes/'.$layout.'/ajax/'.$__showPage.'.tpl.html';
|
||||
}else{
|
||||
$requiteFile = ROOT.'themes/'.$layout.'/'.($layoutTpl?'layout':$__showPage).'.tpl.html';
|
||||
}
|
||||
if( !is_file( $requiteFile ) ){
|
||||
die('can\'t load themes '.$__showPage.' files ');
|
||||
}
|
||||
@extract( $data );
|
||||
require( $requiteFile );
|
||||
}
|
||||
if(!function_exists('apache_request_headers')) {
|
||||
function apache_request_headers(){
|
||||
foreach($_SERVER as $key=>$value){
|
||||
if (substr($key,0,5)=="HTTP_") {
|
||||
$key=str_replace(" ","-",ucwords(strtolower(str_replace("_"," ",substr($key,5)))));
|
||||
$out[$key]=$value;
|
||||
}
|
||||
}
|
||||
return $out;
|
||||
}
|
||||
}
|
||||
function safeUrlString( $str ){
|
||||
$str = urldecode($str);
|
||||
return str_replace( array( '.' , '/' ) , array() , $str );
|
||||
}
|
Loading…
Reference in New Issue
Block a user