-
wordpress迁移
前一阵服务器出了些小问题,因此不得不将现有的wordpress做一备份迁移。好在迁移之后还算幸运,整个过程比较顺利,因此现在系统又开始跑起来了。你可能会觉得迁移不是什么太麻烦的事情,不过对于一个几年没挪过窝,东西又烂又多,数据库打包都有8m,虚拟主机权限很少的人来说,这可是一档子大事情。 mysql 4 to mysql 4.1 首先面对的问题,是虚拟主机上的数据库又生了,4.0跳到4.1,老江湖都知道,mysql 4.1新增了字符集,一个没弄好就是页面乱码伺候。 另外一个问题,是前面提过的,原来的数据库用phpmyadmin打包出来,有8M,再用phpmyadmin导入是不用指望,在没有shell权限的情况下,要把这个数据导进去也挺麻烦。 最后用个意想不到的办法,就轻易解决了上面俩问题 —— 我们知道,大容量的mysql数据的导入导出,还是命令行导出方便,虽然说我没有虚拟主机的shell权限,但是php本身还是有办法调用shell的(感谢主机提供者,没有开启安全模式),按照这个思路,我首先将sql上传到服务器,然后用一行php脚本就完成了数据的导入: <?php `mysql -uroot -pxxxxxx dbname < db.sql`?> 导入mysql之后的字符集是latin,和以前一致,程序不用做修改就可以投入使用了。 上一次迁移:plog 2 wordpress
-
http_load的使用
记得前些天介绍了一个幻灯——Getting Rich with PHP 5(IE之外的浏览器可看,见用php5来赚大钱),这个幻灯向我们展示了php程序优化的一些技巧,其中命令行工具http_load给我留下很深的印象,这工具看上去和apache的ab很相似,用来做网站的压力测试。昨天在服务器上安装http_load并试用了一段时间,下面是我的一点学习心得。 测试网站每秒所能承受的平均访问量 http_load -parallel 5 -fetches 1000 urls.txt 这段命令行是同时使用5个进程,随机访问urls.txt中的网址列表,总共访问1000次。运行之后的结果: 1000 fetches, 5 max parallel, 6e+06 bytes, in 58.1026 seconds 6000 mean bytes/connection 17.2109 fetches/sec, 103266 bytes/sec msecs/connect: 0.403263 mean, 68.603 max, 0.194 min msecs/first-response: 284.133 mean, 5410.13 max, 55.735 min HTTP response codes: code 200 — 1000 从上面的运行结果来看,目标网站仅仅能够承受每秒17次访问,不够强壮。 测试网站是否能承受住预期的访问压力 http_load -rate […]
-
vim的php语法检查
之前一直是editplus的忠实爱好者,对editplus的使用也是小有心得.自打转向到vim之后,费了很大劲才转换一些习惯,渐渐的脱离了editplus,可见一款趁手的编辑器还是粘性很强的.以前说到的editplus可以和zend studio自带的ZendCodeAnalyzer工具进行整合对php语法进行检测,相当方便.那么怎样用vim实现类似的功能呢?一番搜索,找到了答案: map <C-J> :!php -l %<CR> 这样在vim里面就可以直接用ctrl+j,调用php解析器对当前文档进行语法检查了.当然如果php解析器不在你的路径下的话,那么应该写上全路径,象下面这样: map <C-J> :!c:/php/php -l %<CR> PS:vim的语法美化功能也很方便,只要在程序的第一行,command模式下输入=:1,$,就可以把当前代码排列的井然有序.而editplus则需要另外的工具配合,也能做到这一点. 参考资料:http://www.vim.org/tips/tip.php?tip_id=692
-
学习使用diff和patch
最近经常要修改一些配置文件,老是需要告诉别人在某一行增加一些字符,然后修改某处,不仅容易出错,而且也麻烦.于是花了10分钟学习diff和patch的使用,就没这个麻烦了:) diff和patch是一对工具,在数学上来说,diff是对两个集合的差运算,patch是对两个集合 的和运算。 diff比较两个文件或文件集合的差异,并记录差异,也就是patch文件, 然后用diff和patch这对工具, 生成另外一个文件。 这就是diff和patch的妙处。 首先我有两个配置文件,他们有些配置上的区别: php.ini php.ini.org 下面我们根据这两个文件生成patch, 并通过patch文件来修改另外一个文件: diff php.ini php.ini.org > php.ini.patch //这样就生成了一个php.ini.patch的补丁文件 patch -p1 -R php.ini.org < php .ini.patch //通过补丁文件修改了php.ini.org,和php.ini一致 参考资料: http://hahaxixi.blogeden.cn/post/143796/4672 google
-
命令行下简单做到mysql的数据导入导出
在命令行下mysql的数据导出有个粉好用的工具mysqldump,,它的参数有一大把,可以这样查看: mysqldump 我最常用的: mysqldump -uroot databasefoo table1 table2 > foo.sql 这样就可以将数据库databasefoo的表table1,table2以sql形式导入foo.sql中,其中-uroot参数表示访问数据库的用户名是root,如果有密码还需要加上-p参数 mysql的数据导入也是相当便捷的,如: mysql -uroot databasefoo < foo.sql 这样就可以将foo.sql的数据全部导入数据库databasefoo
-
vim的的代码折叠
vim也是有代码折叠功能的,以前就知道,然而毕竟用的不多,这个功能基本上很少用。随着最近和gvim的亲密接触,对代码折叠功能逐渐熟悉起来。有一次打开一段php的代码 — 比如PEAR.php,发现里面的代码自动被折叠了,将代码展开后,可以看到只要代码两边有/*{{{*/和/*}}}*/,就会被自动折叠。仔细搜索配置,其中有一句是重点: foldmethod=marker 这样vim就会自动搜索代码,将{{{和}}}之间的内容折叠起来,而且代码结尾有一段小注释也不是无用的废料: /* vim600: sw=4 ts=4 fdm=marker syn=php */ 这段注释会被vim读取,并自动设置到环境变量里面。 关于代码折叠的用法,只要在vim中输入: :help zo 就可以看到了不少相关的快捷键,需要一定的练习才可以得心应手:) 我的gvim配置内容又增加了: colo zellner set guifont=Courier_New:h11:cANSI nobackup tabstop=4 shiftwidth=4 foldmethod=marker au BufRead * simalt ~x set langmenu=zh_CN.utf-8 source $VIMRUNTIME/delmenu.vim source $VIMRUNTIME/menu.vim set guifont=DejaVu\ Sans\ Mono:h12 source $VIMRUNTIME/../_vimrc set encoding=utf-8 set fileencodings=utf-8,chinese,latin-1 if has(“win32”) set fileencoding=chinese else set fileencoding=utf-8 endif […]
-
正在用的免费软件
公司规定不能私自在工作机上安装盗版软件,于是努力寻找windows下免费的替代品 hoekey 很好用而且小巧的热键工具 freemind FreeMind是一个专门用于画mindmap的一个免费的桌面画图工具 hxd 16进制编辑器,很小巧,免安装的绿色软件。 gimp 免费的作图工具,可以用来替代firework,photoshop之类的,当然,可能使用上不是那么习惯。 Kalender 很好用的免费日历,想抛弃outlook日历的尽管试试 雅虎乐译 想用它来替代金山词霸.安装包小于1M,同时还有乐译绿色版无需安装、免除卸载 gvim 本来一直是使用editplus,而且已经用的很顺手,很可惜,这东东并不free,也不知如何付费,因此转头使用gvim,这转变对我而言简直是一场恶梦,得慢慢适应vim巨多的操作键位. filezilla 没话说,free且好用的ftp工具,支持ftp,sftp等等 firefox 这东东在调试javascript的时候,感觉很好.而且有一些可以帮助web开发的插件 WinSCP 也是一款ftp工具,跟filezilla不同的是,它还支持scp,作为一个辅助工具来使用.而且在配置得当的情况下,相当好用. putty/pietty 小巧玲珑的ssh/telnet登陆工具,只有几百k,功能却是一点不弱.其中pietty是对中文支持很好的putty改进版本 Nvu 非常感谢楼下的朋友推荐这个可视化html编辑工具,尝试用它替代dreamweaver PS:这个工具会自动将代码换行,并且用类似tidy的工具自动进行格式化,因为这个原因,暂时打入冷宫 Irfan View 用来代替acdsee简单的看图 暂时还没找到dreamweaver的合适替代品,有空来接着补充
-
用javascript实现php中的str_replace
先前要写一段js脚本,将html中的指定字符替换成其它字符,如果直接用js的str.replace(),只会替换第一个出现的字符,于是写了比较粗糙能替换全部指定字符的版本: function strReplace(search, replace, str) { var tmp = str; do { str = tmp; tmp = str.replace(search, replace); }while (str != tmp); return str; } 这个脚本看上去不是太爽,效率估计很勉强,于是google了一下,原来有更好的版本: //俺主要是为了适应php的str_replace()啊 function strReplace(search, replace, str) { var regex = new RegExp(search, “g”); return str.replace(regex, replace); } 或者oo一点的写法 String.prototype.replaceAll = function(search, replace){ var regex = new RegExp(search, “g”); return […]
-
inline-js 0.2 — wordpress plugin
留个关于inline-js插件的更新记录 inline-js 0.2 —— wordpress plugin 本插件可在文章或页面中插入javascript或别的html等等不希望被wordperss本身重新格式化的内容。 Plugin Name: Inline Javascript Plugin Plugin URI: http://www.ooso.net/index.php/inline-js/ Feed URI: http://www.ooso.net/index.php/feed/ Description: Plugin that insert inline javascript in Posts/Pages Version: 0.2 Author: Volcano Author URI: http://www.ooso.net Usage Unzip Copy inline-js.php to direcotry wp-contents/plugin and activate it Use <inline> and </inline> tag around the javascript,and post it Ok Source […]
-
如何解决表单出错返回从填的时候以前填写的东西全部消失
当使用session后会出现这种情况,我们可以使用session_cache_limiter();强制生效. < ?php session_cache_limiter("private, must-revalidate"); session_start(); ... ?> 原出处:http://club.phpe.net/index.php?s=2ca088f315e3121f22c20cd3209b53df&act=Print&client=printer&f=2&t=8792