-
使用PDO的一些备忘
之前在论坛上灌水的时候,也曾经看到别人提到过PDO的一些生僻用法。但是当时觉得短期内不会用上,所以不是太在意。等到要用的时候,满世界也找不到出处。 这使我下定决心,做点PDO的小笔记,慢慢补。 设定PDO的fetchMode 初始化pdo的时候,就设定好PDO的fetchMode,应该能省点事,比如我最喜欢的fetchMode是FETCH_OBJ。 $dbh->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO:FETCH_OBJ); 其中PDO::ATTR_DEFAULT_FETCH_MODE是php 5.2.0之后才新增的常量 还可以在实例化PDO对象的时候就完成这个设定: $dbh = new PDO(“mysql:dbname=dbname”, “user”, “password”, array(PDO::ATTR_DEFAULT_FETCH_MODE => PDO:FETCH_OBJ));
-
wordpress plugin – search engine related posts
Table of content Description Usage Download History Link Description English version When someone is referred from a search engine like Google, the plugin show your blog content matched the terms they search for. 中文说明 当用户从google搜索到你的博客上,这个wordpress 插件会根据用户搜索的关键词显示你的博客上更多的相关内容。目前也只对google生效,下一个版本将对baidu生效。 这个插件完全使用javascript加上google的api完成,不需要占用服务器端的资源,环保且安全。 Usage English version: unzip it Put <div style=”display:none” id=”search_content”></div> at the place in your template where you want […]
-
如何把磁盘fat32转ntfs格式
首先我认为磁盘fat32转ntfs格式这不是一个需要什么高深技术的问题,因为解决方案很早就存在,随便搜索一下都能找到一大把无比正确的解决办法,例如: 在命令提示符下键入convert [driver] /fs:ntfs即可 其中driver是想转换的盘符convert [driver] /fs:ntfs之间有空格 Win 2000/XP 自带了将FAT或FAT32分区转换成NTFS分区的一个小程序—Convert.exe,它不但转换速度快、简单易用,而且原来该分区上的数据还可以继续保存下来 在win运行窗口,输入“Convert C: /fs:ntfs”;如果要转换D盘,只要将“C:”改成相应的“D:”即可。转换完成后,它会向你报告你所转换的磁盘分区情况。 注意事项: 1、建议先执行磁盘扫描、磁盘碎片整理程序。 2、如果你要转换的FAT或FAT32分区上面有文件正被系统使用,那么在转换时,转换程序将会询问你是否卸下要转换的卷(即分区),这时最好选择“否”,最后它就会询问你是否在下一次计算机启动时转换分区,选择“是”并重新启动机器即可完成转换。 但是今天在家里的老本本(Evo N610c)上,遇到了史无前例的挫折。俺企图把c盘的fat32转成ntfs,相当的失败,每次都是转换了一半自动关机,重新开机又会自动进入转换状态,如此循环,直至俺崩溃为止。也许我该换个更人性化的工具来实现这一阶段性目标。
-
inline-js 0.4 —— wordpress plugin
Inline-js plugin minor update. It now work fine with exec-php plugin. Download Inline-js 0.4 详细信息 inline-js wordpress plugin
-
bom头的影响
前阵子有同事写了一段代码,在setcookie的时候出现下面错误。 Cannot modify header information – headers already sent by …. 这个错误非常之常见,如果在setcookie之前输出了任何文本内容,便会有上述错误提示。由于页面头部require了若干文件,一行行排查是很麻烦的事情,因此,我在页面顶部加上: ob_start(); 在setcookie之前加上代码: ob_get_clean(); 这是为了获取setcookie之前页面输出的内容。页面运行后,显示输出了一个空字符串,也就是说,setcookie之前没有任何输出。 继而用vim打开了源文件,发觉vim有打开bomb选项,怀疑因此给代码添加了隐藏的字符串,关闭之: set nobomb 问题解决。 BOM是什么意思? BOM是“Byte Order Mark”的缩写,用于标记文件的编码。并不是所有的文本编辑工具都能识别BOM标记
-
使用firebug的补充
这里是最近使用firebug的一个补充记录,以后也会不断更新。 列出一个object的所有内容 在console上使用命令 console.dir(obj) 可以查看一个object所包含的方法,属性 firebug提供的console对象有哪些方法 用dir方法看一下console本身即可 console.dir(console) console用法列表 console.time(“test timer”); console.log(“Hello from “,document.title); console.info(“This is info”); console.warn(“This is warning”); console.error(“This is error”); console.timeEnd(“test timer”);
-
php的chm手册打不开怎么办
在网上下载的php的chm手册时常会有打不开的情况,也不是每次都发生。下面是找到的解决办法以及原因。 如果提示从网站打开或保存 .chm 文件,则仅在需要此文件且信任提供此文件的网站的情况下进行此操作。 在“文件下载”对话框中,单击“保存”,然后选择要保存此 .chm 文件的位置。然后,使用下面的方法之一: 方法 1 1. 双击此 .chm 文件。 2. 在“打开文件安全警告”对话框,单击以清除“打开此文件前始终询问”复选框。 3. 单击“打开”。 方法 2 1. 右键单击该 CHM 文件,然后单击“属性”。 2. 单击“取消阻止”。 3. 双击此 .chm 文件以打开此文件。 参考微软的说明:http://support.microsoft.com/kb/902225/zh-cn
-
用xdebug优化php的三个小窍门
xdebug的2.0正式版已经发布了。这个工具用在php的代码调试,优化方面效果很不错。下面贴上俺使用过程中的几个小窍门。 xdebug生成profile文件,可以用KCachegrind来查看,但是这个工具只在linux下面可用,没有windows下的版本。这里推荐一个win下的免费工具——wincachegrind,也可以查看xdebug的profile文件,用来分析php代码运行情况足够用了(偶尔不太稳定)。 xdebug一般情况下只会对一个请求做profile记录,如果需要查看几个请求的运行情况合集,可以设置xdebug.ini的 xdebug.profiler_aggregate = 1 记得重启你的apache。 如果在xdebug.ini里设置了 xdebug.profiler_enable = 1 那么每次程序运行期间xdebug都会记录profile,这样对程序的运行速度有很大的影响。为了避免这一情况发生,可以让xdebug仅在需要的时候运行——设置 xdebug.profiler_enable_trigger = 1 这样,只有你用get/post方式提交XDEBUG_PROFILE变量的情况下,xdebug才会开始干活。 另:将最新版本的xdebug和APC同时使用,没有出现兼容性问题,运行良好。
-
关于“php str_replace 一次”
在日志里头看到这样一个查询词,“php str_replace 一次”。用户可能是在找如何利用php的str_replace只替换目标字符串的内容一次,而不是全部替换。 这是个比较小但是有点意思的问题,正好之前也做过类似的处理,当时我是直接利用preg_replace实现的。 mixed preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit] ) 在 subject 中搜索 pattern 模式的匹配项并替换为 replacement。如果指定了 limit,则仅替换 limit 个匹配,如果省略 limit 或者其值为 -1,则所有的匹配项都会被替换。 因为preg_replace的第四个参数可以实现替换次数的限制,所以这个问题这样处理很方便。但是在查看php.net上关于str_replace的函数评论后,从中居然也可以挑出几个有代表性的函数来。
-
可以用button代替input type=”submit”吗
在ie下,<button>标记恐怕还存在几个不大不小的问题。 在一个表单里,如果有一个以上”submit”类型的<button>标签存在,在表单被提交时,不管你点击哪个<button>,所有<button>的值都会被post/get。 <button>的缺省type属性被设置为”button”,但是在A级别浏览器下,应该设置为”submit”才对 如果你用javascript去访问<button>的value属性,IE却返回了<button>的innerHTML属性,很让人恼火。 (可以使用”getAttributeNode”方法来避免.) 例如,一段HTML: text 1 text 2 在IE下,上面两个button的数据都会被提交。并且ie会提交这两个button的innerText而不是value。而其它浏览器仅仅提交你点击的那个button。 以上,应该尽量避免使用button标记。