php實(shí)現(xiàn)文件壓縮
Jun 08, 2016 pm 05:32 PM
/*
--------------------------
Copyright by T.muqiao(39號(hào)天堂橋)
本程序僅供學(xué)習(xí)討論使用,在未通知作者作為任何商業(yè)用途
???????? 視為中華人民共和國(guó)不道德公民
聯(lián)系方式:442536278@qq.com
-------------------------*/
if(!defined('IN_SELF')){
?header('HTTP/1.1 404 NOT Found');
?exit;
}
class ZipAllFloder{//壓縮文件夾
???
?var $datasec????? = array();
?var $ctrl_dir???? = array();
?var $eof_ctrl_dir = "\x50\x4b\x05\x06\x00\x00\x00\x00";
?var $old_offset?? = 0;
?var $dirs???????? = array(".","");
?var $dirlen?????? = 0;
???
?function IniVars(){//初始化變量
??????? $this -> datasec????? = array();
??????? $this -> ctrl_dir???? = array();
??????? $this -> eof_ctrl_dir = "\x50\x4b\x05\x06\x00\x00\x00\x00";
??????? $this -> old_offset?? = 0;
??????? $this -> dirs???????? = array(".","");
??$this -> dirlen?????? = 0;
??? }
???
?function ZipFolder($dir,$zipfilename){//壓縮一個(gè)文件夾
??????? if(substr($dir,-1)!="/"){
???$dir .= "/";
??}
??$this -> dirlen = strlen($dir);
??????? $this -> AddFolderContent($dir);
??????? $out = $this -> get_file();
??????? $this -> IniVars();
??????? $fp = fopen($zipfilename,"w");?
??????? fwrite($fp,$out,strlen($out));?
??????? fclose($fp);
??? }
???
??? function AddFolderContent($dir){//添加文件夾中文件內(nèi)容
??????? if(is_dir($dir)){
???$folder = substr($dir,$this ->dirlen);
??????????? if(!in_array($folder,$this->dirs)){
??????????????? $this->add_Dir($folder);
??????????? }
??????????? $handle = opendir($dir);
??????????? while($files = readdir($handle)){
??????????????? if (($files==".")||($files=="..")) continue;
??????????????? if(is_dir($dir.$files)){
??????????????????? $this->AddFolderContent($dir.$files."/");
??????????????? }else{
??????????????????? $fp = fopen ($dir.$files,"r");
??????????????????? $content = @fread ($fp,filesize($dir.$files));?
??????????????????? fclose ($fp);?
??????????????????? $this->add_File($content,$folder.$files);
??????????????? }
??????????? }?
??????????? closedir($handle);
??????? }
??? }
?function get_file(){//獲得壓縮文件數(shù)據(jù)
??????? $data = implode('', $this -> datasec);
??????? $ctrldir = implode('', $this -> ctrl_dir);
??????? return $data . $ctrldir . $this -> eof_ctrl_dir .
??????? pack('v', sizeof($this -> ctrl_dir)).pack('v', sizeof($this -> ctrl_dir)).
??????? pack('V', strlen($ctrldir)) . pack('V', strlen($data)) . "\x00\x00";
??? }
???
??? function add_dir($name){
??????? $name?? = str_replace("\\", "/", $name);
??????? $fr???? = "\x50\x4b\x03\x04\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00";
??????? $fr??? .= pack("V",0).pack("V",0).pack("V",0).pack("v", strlen($name) );
??????? $fr??? .= pack("v", 0 ).$name.pack("V", 0).pack("V", 0).pack("V", 0);
??????? $this -> datasec[] = $fr;
??????? $new_offset = strlen(implode("", $this->datasec));
??????? $cdrec = "\x50\x4b\x01\x02\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00";
??????? $cdrec .= pack("V",0).pack("V",0).pack("V",0).pack("v", strlen($name) );
??????? $cdrec .= pack("v", 0 ).pack("v", 0 ).pack("v", 0 ).pack("v", 0 );
??????? $ext = "\xff\xff\xff\xff";
??????? $cdrec .= pack("V", 16 ).pack("V", $this -> old_offset ).$name;
??????? $this -> ctrl_dir[] = $cdrec;
??????? $this -> old_offset = $new_offset;
??????? $this -> dirs[] = $name;
??? }
???
??? function add_File($data, $name, $compact = 1){
??????? $name???? = str_replace('\\', '/', $name);
??????? $dtime??? = dechex($this->DosTime());
??????? $hexdtime = '\x' . $dtime[6] . $dtime[7].'\x'.$dtime[4] . $dtime[5] . '\x' . $dtime[2] . $dtime[3].'\x'.$dtime[0].$dtime[1];
??????? eval('$hexdtime = "' . $hexdtime . '";');
??????? if($compact){
??????????? $fr = "\x50\x4b\x03\x04\x14\x00\x00\x00\x08\x00".$hexdtime;
??????? }else{
??????????? $fr = "\x50\x4b\x03\x04\x0a\x00\x00\x00\x00\x00".$hexdtime;
??????? }
??????? $unc_len = strlen($data); $crc = crc32($data);
??????? if($compact){
??????????? $zdata = gzcompress($data); $c_len = strlen($zdata);
??????????? $zdata = substr(substr($zdata, 0, strlen($zdata) - 4), 2);
??????? }else{
??????????? $zdata = $data;
??????? }
??????? $c_len=strlen($zdata);
??????? $fr .= pack('V', $crc).pack('V', $c_len).pack('V', $unc_len);
??????? $fr .= pack('v', strlen($name)).pack('v', 0).$name.$zdata;
??????? $fr .= pack('V', $crc).pack('V', $c_len).pack('V', $unc_len);
??????? $this -> datasec[] = $fr;
??????? $new_offset??????? = strlen(implode('', $this->datasec));
??????? if($compact){
??????????? $cdrec = "\x50\x4b\x01\x02\x00\x00\x14\x00\x00\x00\x08\x00";
??????? }else{
??????????? $cdrec = "\x50\x4b\x01\x02\x14\x00\x0a\x00\x00\x00\x00\x00";
??????? }
??????? $cdrec .= $hexdtime.pack('V', $crc).pack('V', $c_len).pack('V', $unc_len);
??????? $cdrec .= pack('v', strlen($name) ).pack('v', 0 ).pack('v', 0 );
??????? $cdrec .= pack('v', 0 ).pack('v', 0 ).pack('V', 32 );
??????? $cdrec .= pack('V', $this -> old_offset );
??????? $this -> old_offset = $new_offset;
??????? $cdrec .= $name;
??????? $this -> ctrl_dir[] = $cdrec;
??????? return true;
??? }
???
??? function DosTime() {
??????? $timearray = getdate();
??????? if ($timearray['year']
??????????? $timearray['year'] = 1980; $timearray['mon'] = 1;
??????????? $timearray['mday'] = 1; $timearray['hours'] = 0;
??????????? $timearray['minutes'] = 0; $timearray['seconds'] = 0;
??????? }
??????? return (($timearray['year']-1980)>1);
??? }
}
class UnCompress{
?function get_List($zip_name){
??$zip?? = @fopen($zip_name, 'rb');
??if(!$zip) return(0);
??$centd = $this->ReadCentralDir($zip,$zip_name);
??@rewind($zip);
??@fseek($zip, $centd['offset']);
??for ($i=0; $i
???$header????????????????? = $this->ReadCentralFileHeaders($zip);
???$header['index']???????? = $i;
???$info['filename']??????? = $header['filename'];
???$info['stored_filename'] = $header['stored_filename'];
???$info['size']??????????? = $header['size'];
???$info['compressed_size'] = $header['compressed_size'];
???$info['crc']???????????? = strtoupper(dechex( $header['crc'] ));
???$info['mtime']?????????? = $header['mtime'];
???$info['comment']???????? = $header['comment'];
???$info['folder']????????? = ($header['external']==0x41FF0010||$header['external']==16)?1:0;
???$info['index']?????????? = $header['index'];$info['status'] = $header['status'];
???$ret[]?????????????????? = $info;
???unset($header);
??}
??return $ret;
?}
?
?function Extract($zn,$to,$index = array(-1) ){
??$ok = 0;
??$zip = @fopen($zn,'rb');
??if(!$zip){
???return(-1);
??}
??$cdir = $this->ReadCentralDir($zip,$zn);
??$pos_entry = $cdir['offset'];
??if(!is_array($index)){
???$index = array($index);?
??}
??for($i=0; $index[$i];$i++){
???if(intval($index[$i])!=$index[$i]||$index[$i]>$cdir['entries']){
????return(-1);
???}
??}
??for ($i=0; $i
???@fseek($zip, $pos_entry);
???$header = $this->ReadCentralFileHeaders($zip);
???$header['index'] = $i; $pos_entry = ftell($zip);
???@rewind($zip); fseek($zip, $header['offset']);
???if(in_array("-1",$index)||in_array($i,$index)){
????$stat[$header['filename']]=$this->ExtractFile($header, $to, $zip);
???}
??}
??fclose($zip);
??return $stat;
?}
?
?function ReadFileHeader($zip){
??$binary_data = fread($zip, 30);
??$data = unpack('vchk/vid/vversion/vflag/vcompression/vmtime/vmdate/Vcrc/Vcompressed_size/Vsize/vfilename_len/vextra_len', $binary_data);
??$header['filename'] = fread($zip, $data['filename_len']);
??if ($data['extra_len'] != 0) {
???$header['extra'] = fread($zip, $data['extra_len']);
??}else{
???$header['extra'] = '';
??}
??$header['compression'] = $data['compression'];$header['size'] = $data['size'];
??$header['compressed_size'] = $data['compressed_size'];
??$header['crc'] = $data['crc']; $header['flag'] = $data['flag'];
??$header['mdate'] = $data['mdate'];$header['mtime'] = $data['mtime'];
??if ($header['mdate'] && $header['mtime']){
???$hour=($header['mtime']&0xF800)>>11;$minute=($header['mtime']&0x07E0)>>5;
???$seconde=($header['mtime']&0x001F)*2;$year=(($header['mdate']&0xFE00)>>9)+1980;
???$month=($header['mdate']&0x01E0)>>5;$day=$header['mdate']&0x001F;
???$header['mtime'] = mktime($hour, $minute, $seconde, $month, $day, $year);
??}else{
???$header['mtime'] = time();
??}
??$header['stored_filename'] = $header['filename'];
??$header['status'] = "ok";
??return $header;
?}
?
?function ReadCentralFileHeaders($zip){
??$binary_data = fread($zip, 46);
??$header = unpack('vchkid/vid/vversion/vversion_extracted/vflag/vcompression/vmtime/vmdate/Vcrc/Vcompressed_size/Vsize/vfilename_len/vextra_len/vcomment_len/vdisk/vinternal/Vexternal/Voffset', $binary_data);
??if ($header['filename_len'] != 0){
???$header['filename'] = fread($zip,$header['filename_len']);
??}else{
???$header['filename'] = '';
??}
??if ($header['extra_len'] != 0){
???$header['extra'] = fread($zip, $header['extra_len']);
??}else{
???$header['extra'] = '';
??}
??if ($header['comment_len'] != 0){
???$header['comment'] = fread($zip, $header['comment_len']);
??}else {
???$header['comment'] = '';
??}
??if ($header['mdate'] && $header['mtime']){
???$hour = ($header['mtime'] & 0xF800) >> 11;
???$minute = ($header['mtime'] & 0x07E0) >> 5;
???$seconde = ($header['mtime'] & 0x001F)*2;
???$year = (($header['mdate'] & 0xFE00) >> 9) + 1980;
???$month = ($header['mdate'] & 0x01E0) >> 5;
???$day = $header['mdate'] & 0x001F;
???$header['mtime'] = mktime($hour, $minute, $seconde, $month, $day, $year);
??}else{
???$header['mtime'] = time();
??}
??$header['stored_filename'] = $header['filename'];
??$header['status'] = 'ok';
??if (substr($header['filename'], -1) == '/'){
???$header['external'] = 0x41FF0010;
??}
??return $header;
?}
?
?function ReadCentralDir($zip,$zip_name){
??$size = filesize($zip_name);
??if ($size
???$maximum_size = $size;
??}else{
???$maximum_size=277;
??}
??@fseek($zip, $size-$maximum_size);
??$pos = ftell($zip);
??$bytes = 0x00000000;
??while ($pos
???$byte = @fread($zip, 1); $bytes=($bytes
???if ($bytes == 0x504b0506){
????$pos++;
????break;
???}
???$pos++;
??}
??$data = unpack('vdisk/vdisk_start/vdisk_entries/ventries/Vsize/Voffset/vcomment_size',
??fread($zip, 18));
??if ($data['comment_size'] != 0){
???$centd['comment'] = fread($zip, $data['comment_size']);
??}else{
???$centd['comment'] = ''; $centd['entries'] = $data['entries'];
??}
??$centd['disk_entries'] = $data['disk_entries'];
??$centd['offset'] = $data['offset'];$centd['disk_start'] = $data['disk_start'];
??$centd['size'] = $data['size'];? $centd['disk'] = $data['disk'];
??return $centd;
?}
?
?function ExtractFile($header,$to,$zip){
??$header = $this->readfileheader($zip);
??if(substr($to,-1)!="/"){
???$to.="/";
??}
??if(!@is_dir($to)){
???@mkdir($to,0777);
??}
??$pth = explode("/",dirname($header['filename']));
??for($i=0;isset($pth[$i]);$i++){
???if(!$pth[$i]){
????continue;
???}
???if(!is_dir($to.$pth[$i])){
????@mkdir($to.$pth[$i],0777);
???}
??}
??if (!($header['external']==0x41FF0010)&&!($header['external']==16)){
???if ($header['compression']==0){
????$fp = @fopen($to.$header['filename'], 'wb');
????if(!$fp){
?????return(-1);
????}
????$size = $header['compressed_size'];
????while ($size != 0){
?????$read_size = ($size
?????$buffer = fread($zip, $read_size);
?????$binary_data = pack('a'.$read_size, $buffer);
?????@fwrite($fp, $binary_data, $read_size);
?????$size -= $read_size;
????}
????fclose($fp);
????touch($to.$header['filename'], $header['mtime']);
???}else{
????$fp = @fopen($to.$header['filename'].'.gz','wb');
????if(!$fp){
?????return(-1);
????}
????$binary_data = pack('va1a1Va1a1', 0x8b1f, Chr($header['compression']),
????Chr(0x00), time(), Chr(0x00), Chr(3));
????fwrite($fp, $binary_data, 10);
????$size = $header['compressed_size'];
????while ($size != 0){
?????$read_size = ($size
?????$buffer = fread($zip, $read_size);
?????$binary_data = pack('a'.$read_size, $buffer);
?????@fwrite($fp, $binary_data, $read_size);
?????$size -= $read_size;
????}
????$binary_data = pack('VV', $header['crc'], $header['size']);
????fwrite($fp, $binary_data,8); fclose($fp);
????$gzp = @gzopen($to.$header['filename'].'.gz','rb') or die("Cette archive est compress");
????if(!$gzp){
?????return(-2);
????}
????$fp = @fopen($to.$header['filename'],'wb');
????if(!$fp){
?????return(-1);
????}
????$size = $header['size'];
????while ($size != 0){
?????$read_size = ($size
?????$buffer = gzread($gzp, $read_size);
?????$binary_data = pack('a'.$read_size, $buffer);
?????@fwrite($fp, $binary_data, $read_size);
?????$size -= $read_size;
????}
????fclose($fp); gzclose($gzp);
????touch($to.$header['filename'], $header['mtime']);
????@unlink($to.$header['filename'].'.gz');
???}
??}
??return true;
?}
}
class StatFolder{//統(tǒng)計(jì)文件夾內(nèi)容
?var $Num?????? = 0;
?var $Size????? = 0;
?var $TypeNum?? = 0;
?var $FolderNum = 0;
?var $Type????? = array();
?function __construct($folder){
??$this -> ReadFolder($folder);
?}
?function StatFolder($folder){
??$this -> ReadFolder($folder);
?}
?function ReadFolder($folder){
??if(is_dir($folder)){
???$handle = opendir($folder);
??????????? while($files = readdir($handle)){
??????????????? if (($files==".")||($files=="..")) continue;
??????????????? if(is_dir($folder."/".$files)){
?????$this ->FolderNum++;
??????????????????? $this ->ReadFolder($folder."/".$files);
??????????????? }else{
?????$this ->Num++;
?????$type = fileext($files);
?????if(!in_array($type,$this ->Type)){
??????$this ->Type[] = $type;
??????$this ->TypeNum++;
?????}
??????????????????? $size = filesize($folder."/".$files);?
??????????????????? $this->Size +=$size;
?????clearstatcache();
??????????????? }
??????????? }?
??????????? closedir($handle);
??????? }
?}
?function GetFileNum(){
??return $this -> Num;
?}
?function GetTotalSize(){
??$switch = $this->Size/1024;
??if($switch
???$return = explode(".",$switch);
???if($return[0]==0){
????return $this->Size." bytes";
???}
???return $return[0].".".substr($return[1],0,3)." Kbytes";
??}else{
???$switch /=1024;
???$return = explode(".",$switch);
???return $return[0].".".substr($return[1],0,3)." Mbytes";
??}
?}
?function GetTypeNum(){
??return $this -> TypeNum;
?}
?function GetFolderNum(){
??return $this -> FolderNum;
?}
}
function matchpath($reference,$testpath){//檢查$testpath是否數(shù)學(xué)上的屬于$reference參照路徑
?$reference = explode("/",$reference);
?$testpath? = explode("/",$testpath);
?$num1 = count($reference);
?$num2 = count($testpath);
?if($num1
??return false;
?}
?$degree = 0;
?for($i=0;$i
??if(strtolower($testpath[$i])==strtolower($reference[$i])){
???$degree++;
???continue;
??}else{
???return false;
???break;
??}
?}
?if($degree==$num2){
??return true;
?}
}
function checkcore($path){//檢查核心文件是否包含其中
?global $T_corefile;
?for($i=0;$p=$T_corefile[$i];$i++){
??if(matchpath($p,$path)){
???return true;
???break;
??}
?}
}
function copypath($source,$target,$uncover=true){//拷貝整個(gè)目錄?? 默認(rèn)不允許覆蓋
?global $T_lang;
?if(is_dir($target)){
??if($uncover){
???$errors .= str_replace("--replace--",$target,$T_lang['func'][0]);
???$gocover = false;
??}else{
???$gocover = true;
??}
?}else{
??if(matchpath($target,$source)){//檢測(cè)目錄$source是否包含于$target
???$errors .= str_replace("--replace--",$source,$T_lang['func'][1]);
???$gocover = false;
??}else{
???if(@mkdir($target,0777)){
????$gocover = true;
???}else{
????$errors .= str_replace("--replace--",$target,$T_lang['func'][2]);
????$gocover = false;
???}
??}
?}
?if($gocover){
??$handle = opendir($source);
??while($file = readdir($handle)){
???clearstatcache();
???if(substr($file,-1)=="."||substr($file,-2)=="..") continue;
???if(is_dir($source."/".$file)){
????$errors .= copypath($source."/".$file,$target."/".$file,$uncover);
???}else{
????$gocopy = true;
????if(file_exists($target."/".$file)){
?????if($uncover){
??????$gocopy = false;
?????}else{
??????if(@unlink($target."/".$file)){
???????$gocopy = true;
??????}else{
???????$gocopy = false;
??????}
?????}
????}
????if($gocopy){
?????if(@copy($source."/".$file,$target."/".$file)){
??????$errors .= "";
?????}else{
??????$errors .= str_replace("--replace--",$source."/".$file,$T_lang['func'][3]);
?????}
????}else{
?????$errors .= str_replace("--replace--",$target."/".$file,$T_lang['func'][4]);
????}
???}
??}
??closedir($handle);
?}
?if($errors){
??return $errors;
?}else{
??return "";
?}
}
function movepath($source,$target,$uncover=true){//移動(dòng)整個(gè)目錄? 默認(rèn)不允許覆蓋
?global $T_lang;
?if(is_dir($target)){
??if($uncover){
???$errors .= str_replace("--replace--",$target,$T_lang['func'][0]);
???$gocover = false;
??}else{
???$gocover = true;
??}
?}else{
??if(matchpath($target,$source)){//檢測(cè)目錄$source是否包含于$target
???$errors .= str_replace("--replace--",$source,$T_lang['func'][5]);
???$gocover = false;
??}else{
???if(@mkdir($target,0777)){
????$gocover = true;
???}else{
????$errors .= str_replace("--replace--",$target,$T_lang['func'][2]);
????$gocover = false;
???}
??}
?}
?if($gocover){
??$handle = opendir($source);
??while($file = readdir($handle)){
???clearstatcache();
???if(substr($file,-1)=="."||substr($file,-2)=="..") continue;
???if(!is_dir($source."/".$file)){
????$gocopy = true;
????if(file_exists($target."/".$file)){
?????if($uncover){
??????$gocopy = false;
?????}else{
??????$gocopy = true;
?????}
????}
????if($gocopy){
?????if(@copy($source."/".$file,$target."/".$file)){
??????unlink($source."/".$file);
?????}else{
??????$errors .= str_replace("--replace--",$source."/".$file,$T_lang['func'][3]);
?????}
????}else{
?????$errors .= str_replace("--replace--",$target."/".$file,$T_lang['func'][6]);
????}
???}else{
????$errors .= movepath($source."/".$file,$target."/".$file,$uncover);
???}
??}
??closedir($handle);
?}
?if($errors){
??return $errors;
?}else{
??if(@rmdir($source."/".$file)){
???return "";
??}else{
???$errors .= str_replace("--replace--",$source,$T_lang['func'][7]);
??}
?}
}
function delpath($source){//刪除整個(gè)目錄
?global $T_lang,$T_Recycled;
?$handle = opendir($source);
?while($file = readdir($handle)){
??clearstatcache();
??if(substr($file,-1)=="."||substr($file,-2)=="..") continue;
??if(is_dir($source."/".$file)){
???$errors .= delpath($source."/".$file);
??}else{
???if(@unlink($source."/".$file)){
???}else{
????$errors .= str_replace("--replace--",$source,$T_lang['func'][7]);
???}???
??}
?}
?closedir($handle);
?if($errors){
??$errors .= str_replace("--replace--",$source,$T_lang['func'][8]);
??return $errors;
?}else{
??if($source==$T_Recycled){//清空回收站時(shí) 這個(gè)判斷條件用的上
???return "";
??}else{
???if(@rmdir($source)){
????return "";
???}else{
????$errors .= str_replace("--replace--",$source,$T_lang['func'][8]);
????return $errors;
???}??
??}
?}
}
function limitname($title,$limitlength =13){//限制標(biāo)題長(zhǎng)度
?$length = strlen($title);
?if($length>$limitlength){
??$gbk = 0;
??for($i=0;$i
???$temp = substr($title,$i,1);
???if(ord($temp)>127) $gbk +=1;
??}
??if($gbk%2){
???$title = substr($title,0,$limitlength)."...";
??}else{
???$title = substr($title,0,$limitlength-1)."...";
??}
?}
?return $title;
}
function fileext($filename){
?return trim(substr(strrchr($filename, '.'), 1));
}
function checkpath($path){//檢查path合法和合格性
?$path = eregi_replace("root",".",$path);
?if($path=="."||ereg("^(\.\/).*[^\.\/]$",$path)){
??if(eregi("\.\/(.*)?(\.\.\/)+.",$path)){
???return false;
??}else{
???if(is_dir($path)){
????return $path;
???}else{
????return false;
???}
??}
?}else{
??return false;
?}
}
function historypath(){//歷史路徑
?global $path,$T_rlength,$T_images,$T_main,$T_Recycled;
?$ruote = explode("/",$path);
?$num?? = count($ruote);
?if($num
??return false;
?}else{
??if($num-1>$T_rlength){
???$i = $num-$T_rlength;
??}else{
???$i = 1;
??}
???? for(;$i
???$rs .= "
???$single = ".";
???for($j=1;$j
????$single .= "/".$ruote[$j];
???}
???$rs .= urlencode($single)."\">
???if($single==$T_Recycled){
????$rs .= $T_images."/Recycled.gif";
???}else{
????$rs .= $T_images."/folder.gif";
???}
???$rs .= "\" height=\"50\" width=\"50\" align=absmiddle>".limitname($ruote[$i])."";
??}
??return $rs;
?}
}
?>

ホットAIツール

Undress AI Tool
脫衣畫像を無(wú)料で

Undresser.AI Undress
リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover
寫真から衣服を削除するオンライン AI ツール。

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無(wú)料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡(jiǎn)単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無(wú)料のコードエディター

SublimeText3 中國(guó)語(yǔ)版
中國(guó)語(yǔ)版、とても使いやすい

ゼンドスタジオ 13.0.1
強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Windows 11 では、新鮮でエレガントなデザインが前面に押し出されており、最新のインターフェイスにより、ウィンドウの境界線などの細(xì)部をカスタマイズして変更することができます。このガイドでは、Windows オペレーティング システムで自分のスタイルを反映した環(huán)境を作成するのに役立つ手順について説明します。ウィンドウの境界線の設(shè)定を変更するにはどうすればよいですか? + を押して設(shè)定アプリを開きます。 Windows [個(gè)人用設(shè)定] に移動(dòng)し、[色の設(shè)定] をクリックします。ウィンドウの境界線の色の変更設(shè)定ウィンドウ 11" width="643" height="500" > [タイトル バーとウィンドウの境界線にアクセント カラーを表示する] オプションを見つけて、その橫にあるスイッチを切り替えます。 [スタート] メニューとタスク バーにアクセント カラーを表示するにはスタート メニューとタスク バーにテーマの色を表示するには、[スタート メニューとタスク バーにテーマを表示] をオンにします。

ログイン畫面に「組織から PIN の変更を求められています」というメッセージが表示されます。これは、個(gè)人のデバイスを制御できる組織ベースのアカウント設(shè)定を使用しているコンピューターで PIN の有効期限の制限に達(dá)した場(chǎng)合に発生します。ただし、個(gè)人アカウントを使用して Windows をセットアップした場(chǎng)合、エラー メッセージは表示されないのが理想的です。常にそうとは限りませんが。エラーが発生したほとんどのユーザーは、個(gè)人アカウントを使用して報(bào)告します。私の組織が Windows 11 で PIN を変更するように要求するのはなぜですか?アカウントが組織に関連付けられている可能性があるため、主なアプローチはこれを確認(rèn)することです。ドメイン管理者に問(wèn)い合わせると解決できます。さらに、ローカル ポリシー設(shè)定が間違っていたり、レジストリ キーが間違っていたりすると、エラーが発生する可能性があります。今すぐ

デフォルトでは、Windows 11 のタイトル バーの色は、選択したダーク/ライト テーマによって異なります。ただし、任意の色に変更できます。このガイドでは、デスクトップ エクスペリエンスを変更し、視覚的に魅力的なものにするためにカスタマイズする 3 つの方法について、段階的な手順を説明します。アクティブなウィンドウと非アクティブなウィンドウのタイトル バーの色を変更することはできますか?はい、設(shè)定アプリを使用してアクティブなウィンドウのタイトル バーの色を変更したり、レジストリ エディターを使用して非アクティブなウィンドウのタイトル バーの色を変更したりできます。これらの手順を?qū)W習(xí)するには、次のセクションに進(jìn)んでください。 Windows 11でタイトルバーの色を変更するにはどうすればよいですか? 1. 設(shè)定アプリを使用して + を押して設(shè)定ウィンドウを開きます。 Windows「?jìng)€(gè)人用設(shè)定」に進(jìn)み、

タスクバーのサムネイルは楽しい場(chǎng)合もありますが、気が散ったり煩わしい場(chǎng)合もあります。この領(lǐng)域にマウスを移動(dòng)する頻度を考えると、重要なウィンドウを誤って閉じてしまったことが何度かある可能性があります。もう 1 つの欠點(diǎn)は、より多くのシステム リソースを使用することです。そのため、リソース効率を高める方法を探している場(chǎng)合は、それを無(wú)効にする方法を説明します。ただし、ハードウェアの仕様が対応可能で、プレビューが気に入った場(chǎng)合は、有効にすることができます。 Windows 11でタスクバーのサムネイルプレビューを有効にする方法は? 1. 設(shè)定アプリを使用してキーをタップし、[設(shè)定] をクリックします。 Windows では、「システム」をクリックし、「バージョン情報(bào)」を選択します。 「システムの詳細(xì)設(shè)定」をクリックします。 [詳細(xì)設(shè)定] タブに移動(dòng)し、[パフォーマンス] の下の [設(shè)定] を選択します。 「視覚効果」を選択します

Windows インストーラー ページに「問(wèn)題が発生しました」というメッセージとともに「OOBELANGUAGE」というメッセージが表示されますか?このようなエラーが原因で Windows のインストールが停止することがあります。 OOBE とは、すぐに使えるエクスペリエンスを意味します。エラー メッセージが示すように、これは OOBE 言語(yǔ)の選択に関連する問(wèn)題です。心配する必要はありません。OOBE 畫面自體から気の利いたレジストリ編集を行うことで、この問(wèn)題を解決できます。クイックフィックス – 1. OOBE アプリの下部にある [再試行] ボタンをクリックします。これにより、問(wèn)題が発生することなくプロセスが続行されます。 2. 電源ボタンを使用してシステムを強(qiáng)制的にシャットダウンします。システムの再起動(dòng)後、OOBE が続行されます。 3. システムをインターネットから切斷します。 OOBE のすべての側(cè)面をオフライン モードで完了する

Windows 11 のディスプレイ スケーリングに関しては、好みが人それぞれ異なります。大きなアイコンを好む人もいれば、小さなアイコンを好む人もいます。ただし、適切なスケーリングが重要であることには誰(shuí)もが同意します。フォントのスケーリングが不十分であったり、畫像が過(guò)度にスケーリングされたりすると、作業(yè)中の生産性が大幅に低下する可能性があるため、システムの機(jī)能を最大限に活用するためにカスタマイズする方法を知る必要があります。カスタム ズームの利點(diǎn): これは、畫面上のテキストを読むのが難しい人にとって便利な機(jī)能です。一度に畫面上でより多くの情報(bào)を確認(rèn)できるようになります。特定のモニターおよびアプリケーションにのみ適用するカスタム拡張プロファイルを作成できます。ローエンド ハードウェアのパフォーマンスの向上に役立ちます。畫面上の內(nèi)容をより詳細(xì)に制御できるようになります。 Windows 11の使用方法

畫面の明るさは、最新のコンピューティング デバイスを使用する上で不可欠な部分であり、特に長(zhǎng)時(shí)間畫面を見る場(chǎng)合には重要です。目の疲れを軽減し、可読性を向上させ、コンテンツを簡(jiǎn)単かつ効率的に表示するのに役立ちます。ただし、設(shè)定によっては、特に新しい UI が変更された Windows 11 では、明るさの管理が難しい場(chǎng)合があります。明るさの調(diào)整に問(wèn)題がある場(chǎng)合は、Windows 11 で明るさを管理するすべての方法を次に示します。 Windows 11で明るさを変更する方法【10の方法を解説】 シングルモニターユーザーは、次の方法でWindows 11の明るさを調(diào)整できます。これには、ラップトップだけでなく、単一のモニターを使用するデスクトップ システムも含まれます。はじめましょう。方法 1: アクション センターを使用する アクション センターにアクセスできる

Windows のライセンス認(rèn)証プロセスが突然切り替わり、このエラー コード 0xc004f069 を含むエラー メッセージが表示されることがあります。ライセンス認(rèn)証プロセスはオンラインですが、Windows Server を?qū)g行している一部の古いシステムではこの問(wèn)題が発生する可能性があります。これらの初期チェックを?qū)g行し、システムのアクティブ化に役に立たない場(chǎng)合は、問(wèn)題を解決するための主要な解決策に進(jìn)んでください?;乇懿?– エラー メッセージとアクティベーション ウィンドウを閉じます。次に、コンピュータを再起動(dòng)します。 Windows ライセンス認(rèn)証プロセスを最初から再試行します。解決策 1 – ターミナルからアクティブ化する cmd ターミナルから Windows Server Edition システムをアクティブ化します。ステージ – 1 Windows Server のバージョンを確認(rèn)する 使用している W の種類を確認(rèn)する必要があります
