<?php
//文件上传时分析路径信息
//author:songzhenghe 2014-1-24
//version 0.1
class path_ana {
private $data_root;
private $web_root;
private $http_domain;
private $file;
private $r;
public function __construct(){
//从配置文件中读取
$this->data_root='E:/wwwroot2/cms/common/upload/';
$this->web_root ='E:/wwwroot2/cms/';
$this->r=null;
}
//$file E:/wwwroot2/cms/common/upload/2013/08/345349534.jpg
public function init($file){
$this->file=$file;
$return=array();
$pathinfo=pathinfo($file);
// E:/wwwroot2/cms/common/upload/2013/08/
$return[0]=$pathinfo['dirname'].'/';
// 345349534.jpg
$return[1]=$pathinfo['basename'];
// 345349534
if(strrpos($return[1],'.')!==false){
$return[2]=substr($return[1],0,strrpos($return[1],'.'));
}else{
$return[2]=$return[1];
}
// jpg
$return[3]=$pathinfo['extension'];
// 2013/08/345349534.jpg
$return[4]=$this->str_replace_once($this->data_root,'',$file);
// 2013/08/
$return[5]=dirname($return[4]).'/';
// E:/wwwroot2/cms/common/upload/
$return[6]=$this->data_root;
// common/upload/2013/08/345349534.jpg
$return[7]=$this->str_replace_once($this->web_root,'',$file);
// common/upload/2013/08/
$return[8]=dirname($return[7]).'/';
// E:/wwwroot2/cms/
$return[9]=$this->web_root;
// common/upload/
$return[10]=preg_replace('/'.preg_quote($return[5],'/').'$/i','',$return[8],1);
$return[11]=$this->http_domain.$return[7];
// /common/upload/2013/08/345349534.jpg
$return[12]='/'.$return[7];
// E:/wwwroot2/cms/common/upload/2013/08/345349534.jpg
$return[13]=$this->file;
$this->r=$return;
return $return;
}
private function str_replace_once($needle,$replace,$haystack) {
$pos=strpos($haystack,$needle);
if ($pos===false) return $haystack;
return substr_replace($haystack,$replace,$pos,strlen($needle));
}
//
public function rename_file($prefix='thumb_',$suffix=''){
if($this->r[3]){
$new=$this->r[0].$prefix.$this->r[2].$suffix.'.'.$this->r[3];
}else{
$new=$this->r[0].$prefix.$this->r[2].$suffix;
}
return $new;
}
//
}
echo '<pre>';
$file='E:/wwwroot2/cms/common/upload/2013/08/345349534.jpg';
$path_ana=new path_ana();
$r=$path_ana->init($file);
print_r($r);
$file=$path_ana->rename_file();
$r=$path_ana->init($file);
print_r($r);