- 浏览: 212835 次
- 性别:
- 来自: 宇宙
文章分类
最新评论
-
naryCC:
虽然没有smarty那么方便,但是由于我们的环境太老不得不使用 ...
SmartTemplate -
victorwmh:
我们项目是Java项目,但数据源来自不同的地方,有些还是合作单 ...
和C++相对应Java的CheckSum -
cuisuqiang:
那你们到底是Java项目还是C++的项目?
和C++相对应Java的CheckSum -
david.org:
attempt to write a readonly dat ...
linux+apache+subversion版本控制 -
victorwmh:
wellee 写道兄弟,我怎么配置ZendDebugger老是 ...
Zend Debugger和Zend Optimizer配置(Windows)
管理web项目一直是件很困难的事情,程序使用时间越长里面的spam文件也越多。如何保证web目录的清洁是个重要的工作,结合这个脚本和subversion的管理功能,可以方便你的日常升级管理。
<?php /** * Website upgrade script * Author: victorwmh * Email: victorwmh@gmail.com * Date: 2011-08-23 * * Description: * $argc and $argv is default variables of CLI mode. * $argc is int, $argv is array. $argv[0] is self file name. */ $ublocal = "/home/df3c/upgrade/bundles/"; $uapplocal = "/home/df3c/web"; if ($argc < 2) exit('no argument.'); $ubname = $argv[1]; $ufox = new UpgradeFox(); $ufox->init($uapplocal, $ublocal, $ubname); $ufox->upgrade(); /** * Upgrade-fox class. * @author victorwmh * */ class UpgradeFox { /* update bundle name */ private $bname = ''; /* update bundle location */ private $blocal = ''; /* application location for upgrade */ private $applocal = ''; /* bundle extract directory */ private $extdir = ''; /* all directory of boundle */ private $directories = array(); /* all file of boundle */ private $files = array(); /** * Initialization basic information. * @param string $uapplocal * @param string $ublocal * @param string $ubname */ public function init($uapplocal, $ublocal, $ubname) { $this->applocal = rtrim($uapplocal, '/'); $this->bname = $ubname; $this->blocal = rtrim($ublocal, '/'); $this->extdir = rtrim($this->blocal . '/' . $this->bname, '.zip'); } /** * Update files in the bundle and delete files in the list for dellist.txt. */ public function upgrade() { ob_start(); echo "Upgrade processing...\n"; echo "Upgrade will to overwrite or remove a files.\n"; echo "Are you want to continue? press (y or n):"; ob_flush(); if (trim(fgets(STDIN)) != 'y') { exit("Canceled.\n\n"); }; echo "Check: "; ob_flush(); if ($this->check() === FALSE) { exit("bundle not exist.\nUpgrade failure.\n\n"); } elseif($this->check() == 'zip') { echo "Ok!\nExtract bundle: "; ob_flush(); $this->extract(); } $this->uverify(); echo "Ok!\nUpdate files: "; ob_flush(); $this->update(); echo "Ok!\nClean files: "; ob_flush(); $this->clean(); echo "Ok!\nFinished.\n\n"; ob_end_flush(); } /** * Check upgrade bundle. */ private function check() { if (file_exists($this->blocal . '/' . $this->bname)) { if (preg_match('/(\.zip)+$/', $this->bname)) { return 'zip'; } elseif(is_dir($this->blocal . '/' . $this->bname)) { return 'dir'; } else { return FALSE; } } else { return FALSE; } } /** * Extract upgrade bundle. */ private function extract() { $zip = new ZipArchive(); $zip->open($this->blocal . '/' . $this->bname); if (! $zip->extractTo($this->blocal)) { $zip->close(); exit("extract is failure.\nUpgrade failure.\n\n"); } } /** * Update files in the bundle. */ private function update() { $this->sortDirFile($this->extdir); $this->mkDirAppend(); $this->uoverwrite(); $this->udelete(); } /** * Verify bundles. */ private function uverify() { $ufoxfile = $this->extdir . '/ufox-clean.ini'; if ( ! file_exists($ufoxfile)) { exit("bundle rootdir is not ufox-clean.ini\n"); } } /** * Delete trash files of applocal. */ private function udelete() { $ufoxfile = $this->extdir . '/ufox-clean.ini'; $delfiles = $this->getFileContent($ufoxfile); foreach ($delfiles as $file) { $file = preg_replace('/\s.*/', '', $file); $tmp = $this->applocal . '/' . $file; if ('' == $file) { continue; } elseif (file_exists($tmp)) { is_dir($tmp) ? $this->rmdir($tmp) : unlink($tmp); } } unlink($this->applocal . '/ufox-clean.ini'); } /** * add or overwrite files. */ private function uoverwrite() { $bdirname = rtrim($this->bname, '.zip'); foreach ($this->files as $file) { $tmp = $this->applocal . '/' . substr($file, strpos($file, $bdirname)+strlen($bdirname)); copy($file, $tmp); } } /** * Clean extract files. */ private function clean() { $this->rmdir($this->extdir); } /** * Get contents of the file. * @param string $file * @return array */ private function getFileContent($file) { /* Line breaks for each OS. win:“\r\n”,0x0D0A; linux:“\n”,0x0A; mac:"\r",0x0D; */ if (file_exists($file)) { $contents = file_get_contents($file); if (strpos($contents, "\r\n") > 0) { $separator = "\r\n"; } elseif (strpos($contents, "\n") > 0) { $separator = "\n"; } elseif (strpos($contents, "\r") > 0) { $separator = "\r"; } return explode($separator, $contents); } else { return FALSE; } } /** * sort all file and sub directory of dir. * @param string $dir */ private function sortDirFile($dir) { $handle = opendir($dir); if ($handle) { while (($name = readdir($handle)) !== false) { if ($name === '.' || $name === '..') continue; $tmp = realpath($dir . '/' . $name ); if (is_dir($tmp)) { $this->directories[] = $tmp; $this->sortDirFile($tmp); } else { $this->files[] = $tmp; } } closedir($handle); } } /** * mk appended sub directories of bundle. */ private function mkDirAppend() { $bdirname = rtrim($this->bname, '.zip'); foreach ($this->directories as $dir) { $dir = substr($dir, strpos($dir, $bdirname)+strlen($bdirname)); $tmp = $this->applocal . '/' . $dir; if (! file_exists($tmp)) { mkdir($tmp); } } } /** * Remove directory. * @param string $dir */ private function rmdir($dir) { if (! is_dir($dir)) return false; $handle = opendir($dir); while (($file = readdir($handle)) !== false) { if ($file !== '.' && $file !== '..') { $tmp = $dir . '/' . $file; is_dir($tmp) ? $this->rmdir($tmp) : @unlink($tmp); } } closedir($handle); return rmdir($dir); } }
- upgrade.zip (3.2 KB)
- 下载次数: 4
发表评论
-
SmartTemplate
2012-12-22 12:59 1666基本方法 SmartTemplate:: ... -
PHP webservice
2012-04-02 10:08 0http://www.blueidea.com/tech/pr ... -
常用webservice地址
2012-04-02 08:36 1266天气预报Web Service,数据来源于中国气象局 En ... -
yum httpd php php-mysql
2012-02-20 11:10 1533对于CentOS服务器yum是一个非常好的工具,尤其是在32位 ... -
Postfix替代sendmail发送邮件
2011-08-18 10:52 3624基础知识 MUA: Mail User Ag ... -
Wordpress插件开发
2011-08-11 15:33 1263wordpress能成为当今用户最多的blog程序,其强大的插 ... -
PHP加速器APC、eAccelerator、xCache
2011-08-04 18:06 1500一、PHP加速器介绍 PHP加速器是一个为了提高PH ... -
linux+cacti安装配置,监控主机性能
2011-07-21 15:21 2286一、Cacti概述 1、cacti是用php语言 ... -
PHP正则表达式
2011-07-01 18:14 1174一、概述 正则表达式是进行模式匹配和文本操纵的一种复杂而 ... -
PHP表单及验证
2011-06-30 17:49 2279一、概述 PHP在处理一个页面时,它都会检查URL和 ... -
PHP程序员如何突破成长瓶颈
2011-06-04 15:23 980转:http://www.builder.com.cn/201 ... -
PHP Session原理分析及使用
2011-06-02 16:49 6104之前在一个叫魔 ... -
国外主流PHP框架对比
2011-05-25 10:21 1173【转自】http://tech.it168.c ... -
用memcache.php监测Memcached的使用情况
2010-12-27 10:25 1378最新的memcache pecl中,新增了一个memcache ... -
Linux下安装Memcached及php的memcache扩展库
2010-12-26 18:34 2060Memcache是什么? Memcach ... -
【转】PHP 实现多服务器共享 SESSION 数据
2010-12-14 09:33 861一、问题起源 稍大一 ... -
Zend Debugger和Zend Optimizer配置(Windows)
2010-06-15 12:26 3225Zend Debugger和Zend Optimizer的单个 ... -
PHP常见问题
2010-05-21 07:59 9320、字符串与数字比较,非数字开头的字符串与0比较时返回真 ...
相关推荐
"phpweb升级包"指的是针对该系统的一系列更新补丁,用于优化系统性能、修复已知问题、增加新功能或者提升安全性。从描述中可以看出,这个升级包包含了多个不同日期的版本,比如20090830、20090514等,这些可能代表...
在IT行业中,PHPWeb是一个基于PHP和MySQL的开源内容管理系统,用于快速构建网站。当我们谈论“phpweb手动升级方法”时,我们指的是通过手动步骤更新现有的PHPWeb系统到最新版本,以获取最新的功能、安全补丁和性能...
【PHPWEB正版升级】是一个针对PHPWEB系统的更新过程,它涉及到网站管理后台的优化与功能增强,确保用户能够获得最新的安全补丁、性能提升以及新功能的体验。PHPWEB是一款基于PHP语言开发的网站内容管理系统,它为...
PHPweb 是一个基于 PHP 和 MySQL 开发的开源网站内容管理系统,它为用户提供了方便的建站工具和管理功能。在 PHPweb 的使用过程中,适时的升级对于系统的安全性和功能完善至关重要。"PHPweb 升级补丁+升级包+升级...
对于PHPWeb这款基于PHP构建的网站管理系统,从1.0.5版本升级到2.0.5版本的升级过程是一个关键的操作,旨在引入新的功能、修复已知问题以及增强系统的整体性能。下面将详细解释这个升级过程中的关键知识点。 首先,...
【PHPWEB升级压缩包 20120220】是一个专为PHPWEB系统设计的更新包,它是在2012年2月20日由官方提供给用户进行系统升级的。PHPWEB是一款基于PHP语言开发的网站内容管理系统(CMS),其核心功能包括网站内容管理、用户...
在本文中,我们将详细探讨PHPWeb升级包的关键知识点,包括其重要性、升级流程以及可能涉及的技术点。 1. **系统性能优化**:每次升级都可能包含性能改进的代码,例如更快的数据库查询、更高效的缓存机制或者优化的...
【PHPWeb最新升级包20111209】是一个针对PHPWeb系统的更新补丁,发布于2011年12月9日。PHPWeb是一个基于PHP语言开发的内容管理系统(CMS),它旨在为用户提供便捷、高效且功能丰富的网站构建工具。这次升级包主要...
PHPWEB是一款基于PHP和MySQL开发的开源网站管理系统,主要...综上所述,升级PHPWEB系统是一个涉及多个环节的过程,需要细心操作并遵循官方提供的指导。确保每个步骤都按照说明进行,以保证升级的成功和系统的稳定性。
总之,PHPWEB建站系统的免验证安装和升级补丁提供了一种快速便捷的方式来搭建和维护网站,但同时也需要用户谨慎处理,确保安全性和稳定性。在享受便利的同时,我们不应忽视潜在的风险,务必采取适当的防护措施。
**PHPWeb手机版V1.9** 是一个专为移动端设计的网站内容管理系统,基于PHP语言开发,具有良好的可扩展性和易用性。该系统旨在帮助用户快速构建适应手机和平板等移动设备的网站,提供便捷的后台管理功能,使得内容发布...
PHPWEB-反馈模块是专为PHPWEB框架设计的一个组件,用于填补部分成品网站在功能上的空白,使用户可以方便地提交反馈。通过手动添加此模块,我们可以增强网站的互动性和用户体验,同时也有利于网站的持续改进和优化。 ...
VB Webserver(BigFox 升级版本)是一个基于Visual Basic(VB)开发的Web服务器软件。这个升级版在原版BigFox的基础上进行了界面优化和源码改进,旨在提供更高效、稳定且用户友好的Web服务解决方案。以下是关于VB ...
总的来说,PHP不仅是一门实用的编程语言,更是一个丰富的生态系统,涵盖了从简单的网站到复杂的企业级应用的各种开发需求。通过深入学习和实践,开发者可以利用PHP来创建高效、稳定且功能丰富的Web应用程序。
【PHPWeb安装宝】是一个专为服装企业生产打造的便捷网站搭建工具,它基于PHP语言,简化了网站的建设和管理过程。PHPWeb以其易用性和高效性,深受开发者和企业用户的喜爱。通过这个压缩包,用户可以快速地构建出符合...
【PHPWEB代理平台】是一个基于PHP技术构建的免费网站代理平台,它专为用户提供网站内容的代理服务。这个平台的独特之处在于其真正具备更新和升级的功能,确保用户能够享受到不断优化的服务体验。以下是对该平台及其...
10. **effect**:这看起来像是一个文件夹,可能包含了CSS样式、JavaScript脚本、图片或其他静态资源,它们共同为网站提供视觉效果和交互功能。 通过这个PHPWEB网站源码,开发者不仅可以学习到PHP语言基础、MVC架构...
dbvphp是一个开源的PHP工具,它允许开发团队通过Web界面对数据库进行版本控制操作。这个工具的核心理念是将数据库的变更视为代码的一部分,使得数据库的升级和维护与应用程序的代码版本控制保持一致。dbvphp支持多种...
3. **Web内容管理系统(CMS)**:作为一个企业网站解决方案,PHPWeb 2012包含了一个CMS,允许非技术人员通过用户友好的界面更新网站内容,如添加新产品、修改新闻动态等。 4. **模板系统**:为了适应不同的企业需求...