计算文件夹的大小,包括子文件夹,格式化输出文件夹大小、文件数、子文件夹数信息。 <? //代码也可以用于统计目录数 //格式化输出目录大小 单位:Bytes,KB,MB,GB function getDirectorySize($path) { $totalsize = 0; $totalcount = 0; $dircount = 0; if ($handle = opendir ($path)) { while (false !== ($file = readdir($handle))) { $nextpath = $path . ‘/’ . $file; if ($file != ‘.’ && $file != ‘..’ && !is_link ($nextpath)) { if (is_dir ($nextpath)) { $dircount++; $result [...]
归档 web应用
Web服务器建设
php 随机密码生成函数
随机密码生成也是常用的方法,使用mt_srand生成随机种子,密码的长度可以随意定义,最长32位。 <?php mt_srand((double) microtime() * 1000000); function gen_random_password($password_length = 32, $generated_password = “”){ $valid_characters = “abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789″; $chars_length = strlen($valid_characters) – 1; for($i = $password_length; $i–; ) { //$generated_password .= $valid_characters[mt_rand(0, $chars_length)]; $generated_password .= substr($valid_characters, (mt_rand()%(strlen($valid_characters))), 1); } return $generated_password; } ?><!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”> <html> <head> <title>php 密码生成器 v 4.0</title> <style [...]
php 二分法查找函数
二分法查找函数的php实现 /* * * binarysearch 在数组中查找制定值 * returns false 没找到( 使用 ‘===’ 作比较) * return position 找到 */ function binarysearch( $haystack, $needle ) { if ( !is_array($haystack) ) { return false; } $btm = 0; $top = count($haystack)-1; // just in case not a normal array, but is sorted properly $keys = array_keys($haystack); while ( [...]
php 冒泡排序函数
冒泡排序算法是最基本的c语言算法之一,作为万能小强php实现起来自然也不成问题。 /* * bubblesort() 冒泡排序算法 * 虽然简单但效率不高^_^ * */ function bubblesort( &$a1 ) { if ( !is_array($a1) ) { return false; } $len = count($a1); // go down array and get an element for( $i = 0; $i < $len; $i++ ) { // check everything above element // if we are larger than swap [...]
php 快速排序函数
在php编程中会用到一些常用的算法,把这些算法代码写成函数方便以后调用^_^。php快速排序函数就这样诞生了,两个版本,递归和无递归。可以根据实际需要选用。
玩转小内存 ramhost VPS
在之前的博文中笔者记述了购买的小内存ramhost VPS遭受黑客攻击以及修复的过程 ramhost VPS 除虫记 。经历了这次黑客事件后,笔者不再使用ramhost自带的kloxo控制面板的OS,改用nginx+mysql+php-fpm的方式自己构建web服务器。 然而对于只有80MB内存的小VPS,该如何配置呢?
VPS 编译 安装OpenSSH通用指南
前段时间,笔者在ramhost上购置的小型VPS惨遭黑客攻击,虽然数据没有被破坏,但黑客的攻击行为让客户网站受到了一定的影响一直无法正常运行,让笔者倍感头痛。笔者做了一点分析,VPS的ssh登录安全认证没有做好,是导致黑客的破坏行为得逞的主因。 今天把VPS重装了一遍,首要任务就是加强ssh的安全性。下面记录笔者下载、编译、安装、配置OpenSSH的全过程,以飨读者。
ramhost VPS 除虫记
笔者前段时间在ramhost VPS上购买了一款小型VPS,用于存放一些托管的企业网站,流量不大,用着也很舒服。今天做例行的网站数据备份,发现VPS上挂的两个网站都无法访问,被重定向到http://www.microsoft.com/en/us/default.aspx 这个网站。在确认了不是本机DNS劫持以及GFW没有拦截以后,笔者随即登录VPS的root查明原因。
PHP html解析器代码
虽然笔者更主张使用高级语言做html的解析器;可今天笔者让我们web界的小强php也做一把html解析器,证明小强的功力是多么深厚^_^ 算法思想的说明: 可以将整个算法理解为一个有限状态机,首先获取 “<”,然后解析小于号右边的字符串直到 “>” 为止。这样,便完成了一个html标签的解析过程。
Linode VPS设置VPN的shell脚本
Linode VPS默认支持建设VPN(虚拟专用网络),一直觉得没什么用,也就没有理会。昨天看到godaddy送了75$的google广告费,遂生出架设VPN的念头。笔者的服务器是centos5.4的操作系统,VPN的设置相当简单;如果你也想架设VPN服务器,那么一起跟着做吧^_^. 从概念说起 什么?!不知道VPN干什么用的?!VPN可是个好东东呢,如果您还在用代理上国外“某些特别的网站”=_=!,那么立刻甩掉代理,用VPN吧,因为它更安全、高速。 VPN的英文全称是“Virtual Private Network”,翻译过来就是“虚拟专用网络”。VPN可以通过特殊的加密的通讯协议在连接在Internet上的位于不同地方的两个或多个企业内部网之间建立一条专有的通讯线路,就好比是架设了一条专线一样,但是它并不需要真正的去铺设光缆之类的物理线路。


