[收藏]深入理解PHP内核 (好文,收藏之)


目录

    第一章 准备工作和背景知识
        第一节 环境搭建
        第二节 源码布局及阅读方法
        第三节 常用代码
        第四节 小结

    第二章 概览
        第一节 生命周期及Zend引擎概览
        第二节 SAPI
            Apache模块
            嵌入式
            Fastcgi
        第三节 脚本的执行
            词法分析和语法分析
            opcode
            附:找到Opcode具体实现
        第四节 小结

    第三章 变量及数据类型
        第一节 变量的内部结构
            哈希表(HashTable)
            PHP的哈希表实现
        第二节 常量
        第三节 预定义变量
        第四节 静态变量
        第五节 类型提示的实现
        第六节 变量的生命周期
            变量的赋值和销毁
            变量的作用域
            global语句
        第七节 数据类型转换
     &n
......

wordpress---置顶(sticky)功能排序(order by)


wordpress中有一个很好用的功能--置顶, 现在来研究下使用方法:设置:在列表页点快速编辑(Quick Edit), 然后把置顶勾上,如图


使用:
  1. ......
  2. $sticky = get_option('sticky_posts');
  3. $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
  4. query_posts
    ......

wordpress ---- 相册插件[NextGEN Gallery] 404 错误解决办法


最近wordpress网站出现404错误, URL类似于:
http://www.xxxxxx.com/gallery/10-really-expensive-christmas-gifts/gallery/image/louis-vuitton-condom
http://www.xxxxxx.com/gallery/awesome-gifts-a-man-should-ask-for/gallery/image/louis-vuitton-condom
http://www.xxxxxx.com/gallery/12-must-play-christmas-songs/gallery/image/louis-vuitton-condom
......

看这地址就知道插件开启了Activate permalinks,


遂用下面地址访问
http://www.xxxxxx.com/gallery/10-really-expensive-christmas-gifts/?pid=122
发现能正常访问,初步判断应该是RewriteRules出问题了;

最后查看[NextGEN Gallery]插件源码,一步步排查,发现这个插件不支持此类型的地址
http://www.xxxxxx.com/gallery/10-really-expensive-christmas-gifts/gallery/image/louis-vuitton-condom
仅仅支持此类型的
http://www.xxxxxx.com/10-really-expensive-christmas-gifts/gallery/image/louis-vuitton-condom

打印出RewriteRules就很明白了:
代码如下
  1. [([^/]+)/gallery/page-([0-9]
    ......

用wubi安装ubuntu,开机后出现try(hd0,0) NTFS 'prefix' is not set 的解决办法


用wubi安装ubuntu,开机后出现
  1. Try (hd0,0):NTFS:error:"prefix" is not set
  2. error:NO such device:/ubuntu/disks/root.disk

Try (hd0,0):NTFS:error:"prefix" is not seterror:NO such device:/ubuntu/disks/root.disk然后就进入到了grub>命令行,grub启动菜单显示不了解决办法:

重启后进入到win7,找到ubuntu的安装目录,在隐藏文件夹found.000/dir0000.chk/   找到root.disk . 然后在ubuntu目录下面新建文件夹disks,把found.000/dir0000.chk/目录下面的所有文件都移动到这里,最后重启,就能进入到ubuntu了,

===========================================
看来这个问题挺常见的,天天都有人搜进来,还有一种情况是:

/ubuntu/disks目录下面的文件都存在,found.000里面也没有任何文件,但还是报错, "prefix" is not set
真的挺纠结的,试了很多种方法都不行,最后这样操作:
1. 把/ubuntu/disks/目录下面的所有文件移动到found.000目录下面

......

"android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view"的解决方法


 最近在学习Android, 在创建线程的时候操作视图出现了问题:

代码如下
  1. 09-20 08:42:44.234: ERROR/AndroidRuntime(399): android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.

找了好久资料才知道,线程里面操作视图要在Handler里面,而不能在主线程里面

下面是原来的代码:
代码如下
  1.  

  2. ......

在Linux中使用yuicompressor


使用步骤:1.安装java环境2.将yuicompressor.jar放在任意目录,比如/opt/software/yuicompressor/yuicompressor.jar3.编写bash脚本,保存为yui.sh
  1. #!/usr/bin/env bash
  2. java -jar /opt/software/yuicompressor/yuicompressor.jar $1 > $2
4.运行命令使yui.sh可执行
  1. chmod +x /opt
    ......

解决ubuntu下netbeans代码锯齿以及界面字体美化


在ubuntu下实在忍受不了Zend Studio的运行效率, 遂找到了netbeans, 安装之, 然而确大失所望.
netbeans的速度和功能还可以,就是界面太不友好了,字体看着难受死了,正好有时间充足,就研究了下怎么美化netbeans.
花了点时间搜集资料和不断尝试后,终于达到了满意的效果,如下图:



现在来一一解述美化的步骤:

1.安装netbeans
从netbeans官网download安装包http://netbeans.org/downloads/index.html,解压安装
代码如下
  1. sh ~/software/netbeans-7.0.1-ml-linux.sh

2. 修改netbeans配置文件
代码如下
  1. vim ~/netbeans-7.0.1/etc/netbean
    ......

conflicting types for ‘getmaxx’|conflicting types for ‘getmaxy’


在ubuntu下安装TurboC,make的时候出现了以下错误:
代码如下
  1. cc -O0 -g -DWITH_X -I/usr/X11R6/include -Wall -c -funsigned-char -o arc.o arc.c
  2. In file included from arc.c:36:0:
  3. graphics.h:485:12: error: conflicting types for ‘getmaxx’
  4. /usr
    ......

在wordpress二次开发中实时清空W3 Total Cache缓存


在wordpress二次开发中,假如用到了W3 Total Cache插件,那么在程序中也许需要清空一下缓存, 研究了下W3 Total Cache的源码,发现可以用以下方法实现实时清空W3 Total Cache的缓存,而不用专门跑到它的设置页面清空
代码如下
  1. update_option('widget_unit2_settings',serialize($arr));
  2. if(class_exists('W3_Plugin_TotalCache')){
  3.      //flush cache
  4.     
    ......

在get_posts中使用多个orderby


wordpress中get_posts的用法,官方描述如下:
<?php $args = array(
    'numberposts'     => 5,
    'offset'          => 0,
    'category'        => ,
    'orderby'         => 'post_date',
    'order'           => 'DESC',
    'include'         => ,
    'exclude'         => ,
    'meta_key'        => ,
    'meta_value' &nbs
......

Search On Site