无12      2015-11-08

一.先解释些基础性的东西吧,感觉啰嗦的可以直接跳到第二节哈。。

正则表达式是由普通字符(就是abcd,word这样的)和元字符(可以理解为正则表达式定义的有特殊作用的字符);一般正则表达式都会包含在正斜线“/”里;

正则里的元字符说明:

特别字符说明
$匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 ‘\n’
无12      2015-11-08

正则表达式(Regular Expression,缩写为regexp,regex或regxp),又称正规表达式、正规表示式或常规表达式或正规化表示法或正规表示法,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串 。在很多文本编辑器或其他工具里,正则表达式通常被用来检索和/或替换那些符合某个模式的文本内容 。许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中

无12      2015-11-08

ab的一般使用命令是 ab -n xx -c yy http://baidu.com  这个命令的意思是启动ab,总共发送xx个请求,每次发送yy个请求(并发请求)。 
执行ab -n 10 -c 10 http://baidu.com 返回结果如下

具体解释参见注释

This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> 
无12      2014-11-08

这两天需要给公司开发一个短信发送提醒的功能,一次批量发送几千条短信。
如果直接在后台循环执行虽然可行,但是前台操作用户就只能坐着空等,完全看不到后台执行结果,所以考虑能不能有一种办法可以在php后台执行过程中同时在前台显示后台执行任务进度呢。
但是这里遇到一个问题,一般情况下php都是在后台任务执行完毕后输出结果到浏览器,在执行过程不会给浏览器发送任何数据。这个时候想到了可以使用php的flush函数,可以使用flush函数在程序执行中强制输出;
尝试以下代码:

<?php
for ($i = 1; $i <= 50; $i++) {
 ob_flush();
 flush();
 echo $i.'<br/>';
 sleep(rand(0, 1));
}
?>

网上大都这样的例子,看代码应该会每隔一秒输出一个数字。但是大家实际测试下情况并非如此,而是和没用flush一样,一次性输出1-50;
在这里请大家参考下鸟哥博客上的一篇文章http://www.laruence.com/2010/04/15/1414.html( 深入理解ob_flush和flush的区别);
其中有一段话:

有些Apache的模块,比如mod_gzip,可能自己进行输出缓存,这将导致flush()函数产生的结果不会立即被发送到客户端浏览器。 

甚至浏览器也会在显示之前,缓存接收到的内容。例如 Netscape浏览器会在接受到换行或 html 标记的开头之前缓存内容,并且在接受到 </table> 标记之前,不会显示出整个表格。 

一些版本的 Microsoft Internet Explorer 只有当接受到的256个字节以后才开始显示该页面,所以必须发送一些额外的空格来让这
些浏览器显示页面内容。  

所以找到问题所在了,不是因为flush没有起作用,而是服务器或者浏览器在内容不到一定的字节数(甚至是没有遇到html标记)同样会进行缓存,找到问题所在后尝试以下代码;

<?php
echo str_repeat("<b></br>",4096); //随便输出一段代码立即输出
for ($i = 1; $i <= 50; $i++) {
ob_flush();
flush();
echo $i.'<br/>';
sleep(rand(0, 1));
}
?>

已经可以将后台数据实时发送到前台了,然后有

无12      2014-11-08

1.静态变量及方法  使用关键字static  ,类静态方法不需要实例化对象,使用::符号进行调用;

static的方法和属性只能访问static的方法和属性;

使用self::关键字访问当前类的静态成员;

一个类的所有实例公用该类中的静态属性;

静态方法调用非静态方法,系统会自动将该方法转为静态方法;

———–通过静态方法可以实现php中的 单件模式

2.final 类与方法  

无12      2014-11-08

1.php中类的定义使用关键词 class  ,一般类名使用首字母大写

class People{

}

2.对象的属性(数据状态)是在类中定义的变量,可以通过public private protect 来声明访问权限;

class People{
public   $sex;     //公开的,可以在类的内部和外部随意被访问
protect $name = 'libi'; // 受
无12      2014-11-08

常用的的php错误报告类型:E_Fatal  E_Warring E_Notice

设置错误报告的方法:

1.php.ini文件  设置error_reporting值为对应错误类型,显示全部为E_ALL;(可以用逻辑连接符,&与 |或 ~非)。

2.在php文件中指定(优先级高于php.ini文件),设置方法与php.ini类似,比如在文件头部写入error_reporting(E

无12      2014-11-08

昨天在qq空间看见一篇“神奇的日志”,不同的访客看到同一张图片会显示对应访客的信息,用chrome 查看了下图片来源是个php文件;

基本原理就是 通过 php文件判断来源页面的url(url中包含qq号码),获取qq号码后通过腾讯的开放api接口,获取qq昵称和qq头像,然后用gb函数画图,输出

今天试着在网上找到一个文字转图片的程序,改吧改吧写了一个类似的程序,但是写完发了几篇日志才发

无12      2014-11-08

有很多情况下我们会遇到项目的编码是gbk(gb2312)的情况,大家都知道php的jsonencode函数只支持utf编码,转换gbk编码会把汉字转换为null

大部分使用的办法是使用iconv函数将编码转换为utf8,但是转换成utf8后在前台页面gbk编码的情况下又会乱码,所以又得把json_encode数据转换会utf8;

并在在gbk与utf8互转时遇到特殊字符还会出现各种问题;还

无12      2014-11-08

最近在重学C语言,简单实现了选择排序与冒泡排序,代码如下。

void swap(int *p1,int *p2){
    int temp;//0x7fff5fbff840
    temp = *p1;
    *p1 = *p2;
    *p2 = temp;
}
int *bubblesort(int *list){
    for (int i = 0; i<10; i++) {