⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 index.php

📁 CMS系统 提供学习研究修改最好了 比流行的一些CMS简单 但是更容易理解 是帮助你学习PHPCMS系统的好东东哦
💻 PHP
📖 第 1 页 / 共 4 页
字号:
  if (eregi('^.*\.(mp3)$',$filename))     	return 'audio/mp3';  if (eregi('^.*\.(inc|phtml|php(3-4)?)$',$filename))  						return 'text/phps';  if (eregi('^.*\.(htm|html)$',$filename))  						return 'text/html';  if (eregi('^.*\.(doc|dot)$',$filename))       return 'text/msword';  if (eregi('^.*\.(xls|xlt)$',$filename))       return 'text/msexcel';  if (eregi('^.*\.rtf$',$filename))     	return 'text/rtf';  if (eregi('^.*\.pdf$',$filename))     	return 'text/pdf';  if (eregi('^.*\.ps$',$filename))      	return 'text/ps';  // DETERMINE BY FILE CONTENTS -----------------------------------------------  //  // ... using the first $default['PAGER_BYTES'] bytes of the file  // (we have to avoid reading the entire file into memory)  $content = '';  $file = fopen($filename,'r');  $content = fread($file, $default['PAGER_BYTES']);  fclose($file);  // IMAGE by content -------------------------------     $dimensions = strlen($content) ? linpha_getimagesize($filename) : '';     if (is_array($dimensions))       return 'image';  // BINARY by content ------------------------------     if (preg_replace('/[^\x09\x0c\x0d\x0a\x20-\x7f\x9f-\xfe]/',           '.',$content)!=$content)       return 'binary';  // WHEN IT'S NOT BINARY NOR A KNOWN FILETYPE => TEXT  return 'text/plain';}// ----------------------------------------------------------------------------function display_file($filename) {global $dirleft, $default;  include_once(TOP_DIR.'/plugins/ftp/includes/viewer.inc.php');  $pager_bytes = $default['PAGER_BYTES'];  if (isset($_COOKIE['pager_bytes']))    $pager_bytes = $_COOKIE['pager_bytes'];  $start = 0;  if (isset($_REQUEST['start'])) $start = $_REQUEST['start'];  $type = determine_filetype($filename);  switch ($type) {    case 'image':	 view_image($filename, $pager_bytes); break;    case 'audio/mp3':	 view_with_content_type($filename,'audio/mpeg'); break;    case 'text/plain':   view_text($filename, $start, $pager_bytes); break;    case 'text/html':    view_html($filename, $start, $pager_bytes); break;    case 'text/phps':	 view_php($filename, $start, $pager_bytes); break;    case 'text/msword':	 view_with_content_type($filename,'application/msword'); break;    case 'text/msexcel': view_with_content_type($filename,'application/msexcel'); break;    case 'text/pdf': 	 view_with_content_type($filename,'application/pdf'); break;    case 'text/rtf': 	 view_with_content_type($filename,'application/rtf'); break;    case 'text/ps': 	 view_with_content_type($filename,'application/postscript'); break;    default:	         view_binary($filename, $start, $pager_bytes); break;  }}// ----------------------------------------------------------------------------function edit_file($filename) {global $dirleft, $default;  include_once(TOP_DIR.'/plugins/ftp/includes/editor.inc.php');  $start = 0;  if (isset($_REQUEST['start'])) $start = $_REQUEST['start'];  $type = determine_filetype($filename);  switch ($type) {    case 'text/plain':   edit_text($filename); break;    case 'text/phps':    edit_text($filename); break;    default:	         edit_binary($filename); break;  }}// ----------------------------------------------------------------------------function save_textfile() {global $message;  if (is_writable($_REQUEST['f'])) {    $f = fopen ( $_REQUEST['f'], 'w' );    fputs ( $f, $_REQUEST['contents'] ) ;    fclose ( $f ) ;  }  else    $message .= sprintf(STR_EDITOR_SAVE_ERROR,$_REQUEST['f']);}// ----------------------------------------------------------------------------function save_binaryfile() {global $message, $default;  if (is_writable($_REQUEST['f'])) {    $string = '';    $start = $_REQUEST['start'];    $i = $start;    while (isset($_REQUEST['i_'.$i])) {      if ($default['EDITOR_BINEDITOR_DECIMAL_EDIT'])        // decimal edit        $check = ereg('^[0-9]{1,2}$',$_REQUEST['i_'.$i]);      else   	// hexadecimal editing        $check = ereg('^[0-9a-fA-F]{1,2}$',$_REQUEST['i_'.$i]);      if (!$check) {        $message .= sprintf(          STR_EDITOR_SAVE_ERROR_WRONG_VALUE .          (           $default['EDITOR_BINEDITOR_DECIMAL_EDIT'] ?           STR_EDITOR_SAVE_ERROR_DEC_VALUE_NEEDED :           STR_EDITOR_SAVE_ERROR_HEX_VALUE_NEEDED          ),          $_REQUEST['f'], $i, $_REQUEST['i_'.$i]        );        unset($_REQUEST['i_'.$i]);      }      else {        $string .= chr(hexdec(trim($_REQUEST['i_'.$i])));        $i++;      }    }    if (!strlen($message)) {      $f = fopen( $_REQUEST['f'], 'rb+' );      flock($f, LOCK_EX);      fseek($f, $start);      fputs($f, $string, strlen($string));      flock($f, LOCK_UN);      fclose($f);    }  }  else    $message .= sprintf(STR_EDITOR_SAVE_ERROR,$_REQUEST['f']);}// ----------------------------------------------------------------------------function panel($dir, $sideflag) {global $default, $sortpass, $dirleft, $message, $filetypes, $filealts;  if (!($hnd = @opendir($dir)))    return '<TR><TD>'.STR_ERROR_DIR.'</TD></TR>';  $dirleftparent  = fixed_dirname($dirleft);  // COLLECT DIRECTORY INFORMATION  //  // $files is a kinda pervert multi-dimensional array  // (uses eg. $files['filesize'][$number_of_file] instead of  // $files[$number_of_file]['filesize'])  // but I had to use this approach because the multisort() function  // expects arrays of this structure  $files = Array(    'rowbegin' => Array(),  'icon'      => Array(),  'dir' => Array(),    'isdotdir' => Array(),  'isdotdir1' => Array(),  'sortname' => Array(),    'filename' => Array(),  'size'      => Array(),  'link' => Array(),    'ctime' =>    Array(),  'atime'     => Array(),  'mtime' => Array(),    'rights' =>   Array()  );  $i = 0;  $sum['size']  = 0;  $sum['files'] = 0;    $use_posix = check_posix();    if($use_posix) {    $uid = @posix_getuid(); // get user id of current process  } else {    $uid = 0;  }  while(($filename = readdir($hnd))!==false)  {    $isdotdir1 = ($filename == '.');    $isdotdir2 = ($filename == '..');    $isdotdir  = $isdotdir1 || $isdotdir2;	$dir = is_dir($dirleft . '/' . $filename );    $passdirleft  = $dirleft;    if (!$sideflag && $dir)      $passdirleft =        $isdotdir2 ?          $dirleftparent          :          $dirleft . ($isdotdir1 ? '' : '/' . $filename);    $icon    = '';    $iconalt = '';    eregi("^.*(\.([^\.]+))$", $filename, $nameparts);    if (isset($nameparts[2])) {      $ext = strtolower($nameparts[2]);      foreach ($filetypes as $key=>$value) {        $extensions = explode(',' , $value);        if (in_array( $ext, $extensions )) {          $icon    = $key;          $iconalt = $filealts[$key];        }      }      unset($nameparts);    }    if ($dir && !$isdotdir) { $icon = 'folder'; $iconalt = $filealts['folder']; }    if ($isdotdir2) 	    { $icon = 'back';   $iconalt = $filealts['parentdir']; }    $thisfileWithPath = $dirleft . '/' . $filename;    $link = htmlspecialchars($_SERVER['PHP_SELF'],ENT_QUOTES)."?lt=".urlencode($passdirleft). AMP . "page=ftp" . AMP .          $sortpass .      ($dir ?        '' : AMP . 'todo=openfile' . AMP . 'f=' . urlencode($thisfileWithPath));    $stat = stat($thisfileWithPath);    if ( !$isdotdir ) {      $sum['size']  += $stat['size'];      $sum['files']++;    }	if($use_posix) {		$owner_info = @posix_getpwuid($stat['uid']);  // use @ because check_posix() can return true even if it fails...		$group_info = @posix_getgrgid($stat['gid']);	} else {		$owner_info['name'] = '';		$group_info['name'] = '';	}	/**	* pay attention!!!!!	* if you add entries in $files, you have to add them also in the array_multisort() function in line ~1043 !!	*/    $files['icon'][$i]      = ( strlen($icon) ? "<IMG BORDER=0 ALT='$iconalt' TITLE='$iconalt' SRC='plugins/ftp/images/icons/$icon.png'>" : SP);    $files['dir'][$i]       = $dir;    $files['isdotdir'][$i]  = $isdotdir;    $files['isdotdir1'][$i] = $isdotdir1;    $files['filename'][$i]  = htmlspecialchars($filename, ENT_QUOTES);    $files['sortname'][$i]  = strtoupper($filename);    $files['link'][$i]      = $link;    $files['size'][$i]      = $stat['size'];//    $files['ctime'][$i]     = date("Y-m-d H:i:s",$stat['ctime']);//    $files['atime'][$i]     = date("Y-m-d H:i:s",$stat['atime']);//    $files['mtime'][$i]     = date("Y-m-d H:i:s",$stat['mtime']);    $files['ctime'][$i]     = linpha_strftime('',$stat['ctime']);	$files['atime'][$i]     = linpha_strftime('',$stat['atime']);	$files['mtime'][$i]     = linpha_strftime('',$stat['mtime']);	$files['uid'][$i]       = $stat['uid'];	$files['gid'][$i]       = $stat['gid'];	$files['ownername'][$i] = $owner_info['name'];	$files['groupname'][$i] = $group_info['name'];		// file permissions	if(getOS() == 'win')	{		$files['rights'][$i]    =			'[' .			(is_readable($thisfileWithPath) ? '<FONT CLASS="green">r</FONT>' : SP) .			(is_writable($thisfileWithPath) ? '<FONT CLASS="red">w</FONT>' : SP) .			(function_exists('is_executable') ?				(is_executable($thisfileWithPath) ? '<FONT CLASS="blue">x</FONT>' : SP)				:				SP				) .			']';	} else {		$perm = '['.get_readable_fileperms($thisfileWithPath).']';				$perm = str_replace('r','<FONT CLASS="green">r</FONT>',$perm);		$perm = str_replace('w','<FONT CLASS="red">w</FONT>',$perm);		$perm = str_replace('x','<FONT CLASS="blue">x</FONT>',$perm);				if($uid == $stat['uid'])		{			$files['rights'][$i] = '<a href="'.htmlspecialchars($_SERVER['PHP_SELF'],ENT_QUOTES).'?lt='.urlencode($dirleft). AMP .				'todo=change_perm_form'. AMP .				'f='.urlencode($thisfileWithPath). AMP .				'page=ftp">'. $perm .				'</a>';		}		else		{			$files['rights'][$i] = $perm;		}	}	    $i++;  }  closedir($hnd);  // SORT CONTENTS ------------------------------------------------------------  // 'sort by' field per side and 'sort by' field of current panel ------------  $sortby0 = $default['PANEL_SORTBY'];  if (isset($_REQUEST['sortby0']) && in_array($_REQUEST['sortby0'],Array('name','size','mtime')))    $sortby0 = $_REQUEST['sortby0'];  $sortby = $sortby0;  // 'sort direction' per side and 'sort direction' of current panel ----------  $sortdir0 = $default['PANEL_SORTDIRECTION'];  if (isset($_REQUEST['sortdir0']) && ($_REQUEST['sortdir0']=='desc'))    $sortdir0 = SORT_DESC;  $sortdir = $sortdir0;  // the $sort array is going to be a two-dimensional array.  // it's gonna contain arrays that are containing the parameter-  // triples for multisort():  //  //   $sort[n] = Array('field_name_of_files_array', sort_direction, sort_type);  //  // as defined below ($bydir, $byfilename, etc.)  // these arrays are going to be inserted into the $sort array  // in the order needed  //  $bydir      = Array('dir',      SORT_DESC, SORT_STRING);  $byfilename = Array('sortname', SORT_ASC,  SORT_STRING);  $bysize     = Array('size',     SORT_ASC,  SORT_NUMERIC);  $bymtime    = Array('mtime',    SORT_ASC,  SORT_STRING);  $sort = Array();  // in the parameter-array corresponding the user-chosen sort  // field (eg. $by...) we always change the second field (the  // sort direction), that's what $by...[1] = $sortdir; is for.  // other fields' sort order are used as defaults  // if the user wants to see the directories first,  // we only have to change the order of arrays  if ($default['PANEL_DIRSFIRST'])    switch ($sortby) {      case 'size':  $bysize[1]  = $sortdir;     $sort = Array($bydir, $bysize, $byfilename, $bymtime); break;      case 'mtime': $bymtime[1] = $sortdir;     $sort = Array($bydir, $bymtime, $byfilename, $bysize); break;      default:      $byfilename[1]  = $sortdir; $sort = Array($bydir, $byfilename, $bysize, $bymtime); break;    }  else    switch ($sortby) {      case 'size':  $bysize[1]  = $sortdir;     $sort = Array($bysize, $byfilename, $bymtime, $bydir); break;      case 'mtime': $bymtime[1] = $sortdir;     $sort = Array($bymtime, $byfilename, $bysize, $bydir); break;      default:      $byfilename[1]  = $sortdir; $sort = Array($byfilename, $bysize, $bymtime, $bydir); break;    }  array_multisort(    // 'dot directories' (eg. '.' and '..') are always    // in the first place  	$files['isdotdir'],  SORT_DESC, SORT_STRING,    $files['isdotdir1'], SORT_DESC, SORT_STRING,    $files[ $sort[0][0] ], $sort[0][1], $sort[0][2],    $files[ $sort[1][0] ], $sort[1][1], $sort[1][2],    $files[ $sort[2][0] ], $sort[2][1], $sort[2][2],    $files[ $sort[3][0] ], $sort[3][1], $sort[3][2],    /*       we have to include remaining fields in the sorting procedure       too, to keep the multi-dimensional array consistent    */    $files['atime'],

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -