Category Archives: PHP

JS 文件压缩与反压缩

压缩 js 代码不但可以大大减小 js 文件大小, 还能给用户设置一定的技术门槛使其不能直观的阅读 js 源代码. 下面推荐一个在线压缩 js 工具 Dean Edward's packer: http://dean.edwards.name/packer/ 它还同时提供了利用 php 来压缩 js 的程序: http://joliclic.free.fr/php/javascript-packer/en/ 配合前面介绍的《巧用用户工具强化你的 Editplus》利用 php 命令很容易的给 Editplus 加上 javascript 压缩功能. 当然世界上有盾必有矛, 有压缩当然也会有反压缩, 下面就是一款专门针对 Dean Edward's packer 的反压缩工具: http://jsbeautifier.org/
Also posted in JavaScritp, Tool | Tagged , | Leave a comment

正则表达式的贪婪与非贪婪模式

在使用修饰匹配次数的特殊符号时,有几种表示方法可以使同一个表达式能够匹配不同的次数,比如:"{m,n}", "{m,}", "?", "*", "+",具体匹配的次数随被匹配的字符串而定。这种重复匹配不定次数的表达式在匹配过程中,总是尽可能多的匹配。比如,针对文本 "dxxxdxxxd",举例如下: (d)(\w+) "\w+" 将匹配第一个 "d" 之后的所有字符 "xxxdxxxd" (d)(\w+)(d) "\w+" 将匹配第一个 "d" 和最后一个 "d" 之间的所有字符 "xxxdxxx"。虽然 "\w+" 也能够匹配上最后一个 "d",但是为了使整个表达式匹配成功,"\w+" 可以 "让出" 它本来能够匹配的最后一个 "d" 由此可见,"\w+" 在匹配的时候,总是尽可能多的匹配符合它规则的字符。虽然第二个举例中,它没有匹配最后一个 "d",但那也是为了让整个表达式能够匹配成功。同理,带 "*" 和 "{m,n}" 的表达式都是尽可能地多匹配,带 "?" 的表达式在可匹配可不匹配的时候,也是尽可能的 "要匹配"。这种匹配原则就叫作 "贪婪" 模式 。 非贪婪模式: 在修饰匹配次数的特殊符号后再加上一个 "?" 号,则可以使匹配次数不定的表达式尽可能少的匹配,使可匹配可不匹配的表达式,尽可能的 "不匹配"。这种匹配原则叫作 "非贪婪" 模式,也叫作 "勉强" 模式。如果少匹配就会导致整个表达式匹配失败的时候,与贪婪模式类似,非贪婪模式会最小限度的再匹配一些,以使整个表达式匹配成功。举例如下,针对文本 "dxxxdxxxd" 举例: (d)(\w+?) "\w+?" 将尽可能少的匹配第一个 "d" [...]
Also posted in JavaScritp, Tips | Leave a comment

巧用用户工具强化你的 Editplus

Editplus 的 "用户工具" 功能允许用户通过 Editplus 来运行自己指定的命令, 而且还有专用快捷键更快捷的执行它. 通过一个实际的例子来理解一下什么是 "用户工具" 功能: 1, 工具->参数 #打开参数设置对话框 2, 工具->用户工具->添加工具->程序 #添加一个新的用户工具 3, 在"菜单文本"文本框中输入"SHOW-IP" 在"命令"文本框中输入"ipconfig" 勾选上"捕获输出"复选框 4, 应用->确定 #保存设置 5, 工具->SHOW-IP #执行用户命令 怎么样? 看到效果了没, 在 Editplus 文本编辑区下面出现了输出窗口, 输出窗口中显示了 ipconfig 命令执行的返回值, 它就和 "开始->运行->cmd->ipconfig" 的效果一下. 上面的例子能帮助我们理解 "用户工具" 功能, 但好像不实用, 我们再来玩一个实用性强一点儿的: 我们将要写一个 Math 工具, 它要实现的功能是将计算出我们在 Editplus 编辑区选中的数学表达式的运算结果. 它将利用到 php.exe (http://www.php.net/) 准备工作, 我们将 php.exe 的安装目录放到环境变量中去: [...]
Also posted in Tips, Tool | Tagged , , | Leave a comment

微博缩短网址的实现

原文在这里 随着类似Twitter的微型博客网站的出现,由于字符数的限制,网址缩短服务日渐增多。加上网址缩短服务提供商提供网址追踪等服务,这一业务日渐兴起。知名网址缩短服务商Bit.ly的主要业务便是为微博Twitter提供网址缩短服务。 比如sina微博的sinaurl.cn,腾讯微博的url.cn等。 实现原理很简单,主要是将用户提交的 url 地址转化成一个唯一的字串,这个字串就对应着真实的 url,怎么样实现这种转换呢? url 的转换摘自:http://www.cnblogs.com/sunli/archive/2010/03/25/1696183.html 数据库只有两个字段seq(自增长数字)和url(数字的url地址,建立索引)。 用户输入一个url地址,查询表是否包含此url,如果存在,则返回seq的数字, 如果不存在,则插入数据库,得到一个新增加的自增seq数字,为了缩短数字占用的字符数,我们可以把abc等字母的大小写用上。这样10个数字,26个小写字母,26个大小字母就组成了一个62进制了。比如数字10000000000(100亿)转换后就是aUKYOA,只有6位了,这样就能缩短很多的网址了。 <?php //十进制转到其他制 function dec2any( $num, $base=62, $index=false ) { if (! $base ) { $base = strlen( $index ); } else if (! $index ) { $index = substr( "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" ,0 ,$base ); } $out = ""; for ( $t = floor( log10( [...]
Also posted in Apache, Linux, shell | Tagged , | Leave a comment

怎样保存 Checkbox 值

预备知识点: 二进制数值: 0的二进制数值是 0 1的二进制数值是 1 2的二进制数值是 10 3的二进制数值是 11 4的二进制数值是 100 5的二进制数值是 101 6的二进制数值是 110 ... 在 php 中可以通过 decbin() 函数将十进制数字转换为二进制数字. 位运算符 & (按位与), 什么是 & 运算呢? 以 $c = $a & $b 表达式为例, & 运算是将 $a, $b 的二进制数值相比较, 只要两个二进制数中某位都是1, 则结果的二进制数中该位都为1, 否则结果为 0. 假设: $a 的值为 2 (十进制), 它的二进制数值为 10 $b 的值为 4 (十进制), [...]
Also posted in JavaScritp, Mysql, html | Tagged , , , | Leave a comment

配置 Mysql 允许远程连接

MySql-Server 出于安全方面考虑只允许本机(localhost, 127.0.0.1)来连接访问. 这对于 Web-Server 与 MySql-Server 都在同一台服务器上的网站架构来说是没有问题的. 但随着网站流量的增加, 后期服务器架构可能会将 Web-Server 与 MySql-Server 分别放在独立的服务器上, 以便得到更大性能的提升, 此时 MySql-Server 就要修改成允许 Web-Server 进行远程连接. 假设我们有: Web-Server : 192.168.1.100 //ubuntu Mysql-Server : 192.168.1.101 //xp 我们可以按照下面的步骤修改: 1, 登录 Mysql-Server 连接本地 mysql (默认只允许本地连接) Microsoft Windows XP [版本 5.1.2600] (C) 版权所有 1985-2001 Microsoft Corp. C:\Documents and Settings\kuco>mysql -h localhost -u root -p Enter [...]
Also posted in Mysql | Tagged , , | Leave a comment

PEAR 之 Cache_Lite

应付网站高流量与大并发的一个好办法就是灵活的运用缓存机制, 各种缓存中最常见的就是内存缓存与文件缓存了, 本文要介绍的的就是大名鼎鼎的小巧的文件缓存类 PEAR::Cache_Lite 官网介绍页面: http://pear.php.net/manual/en/package.caching.cache-lite.intro.php 描述: PEAR::Cache_Lite 是一个小型的缓存系统. 它为高流量网站进行了优化, 所以它是快速和安全的(因为它使用了文件锁 和/或 反讹误测试), 目标和技术细节: 速度, 简单, 安全 安装: 1, 下载 Cache_Lite 包(http://pear.php.net/package/Cache_Lite/download) 我下载的是 Cache_Lite-1.7.8 (http://download.pear.php.net/package/Cache_Lite-1.7.8.tgz) 2, 下载 PEAR 包(http://pear.php.net/package/PEAR/download) 我下载的是 PEAR-1.9.1 (http://download.pear.php.net/package/PEAR-1.9.1.tgz) 下载 PEAR 包是因为 Cache_Lite 类依赖于它(调用了 PEAR 的错误处理机制) 3, 在网站根目录建立 include 目录 4, 在网站根目录建立 cache_dir 目录(也可以建立在其它地方, 注意设置正确的读写权限) 5, 解压两个下载好的压缩包复制以下文件到 include 目录中 ./PEAR-1.9.1/PEAR.php ./PEAR-1.9.1/PEAR5.php ./Cache_Lite-1.7.8/Lite.php [...]
Also posted in pear | Tagged , , | Leave a comment

ubuntu下安装lampp+memcache

部分内容来自这里 部分内容来自这里 部分内容来自这里 ########################## # LAMPP部分 ########################## 1, 下载 http://www.apachefriends.org/zh_cn/xampp-linux.html 2, 安装 sudo su #切换到root用户用户 tar xvfz xampp-linux-1.7.3a.tar.gz -C /opt #安装 就这样结束了。XAMPP 被安装在 /opt/lampp 目录下。
Also posted in Linux, Tool | Tagged , , | 1 Comment