分类 php 下的文章

2015
01-23

zendstudio识别Phalcon语法及提示

Phalcon是一个开源的、全堆栈的PHP5框架,使用C扩展编写,专门为高性能优化。无需学习和使用C语言,所有函数都以PHP类的方式呈现。
在Zend studio编辑器中进行Phalcon框架代码开发时,IDE无法对Phalcon框架内的对象、函数与方法进行语法提示。下面就来介绍下,如何让zend studio这个IDE支持Phalcon的语法提示。

1、下载代码提示包,然后解压

https://github.com/rogerthomas84/PhalconPHPDoc

2、打开“/your/workspace/.metadata/.plugins/org.eclipse.php.core/language/”目录,会看到当前目录下,有一些类似“555a446a”或者“7697c88c”的目录,这些目录名称是随机生成的,每个目录当中都要将刚才解压后的Phalcon整个目录文件复制进去,否则不会生效

查看全文 >
2015
01-21

base62编码

Base62编码是由10个数字、26个大写英文字母和26个小写英文字母组成,多用于安全领域。本文将介绍对数字进行Base62编码与解码的方法。

直接上代码,如下:

        /**
         * base62编码与解码key,由10个数字、26个大写英文字母和26个小写英文字母组成
         * @var string
         */
        private $key = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/';

        /**
         * base62编码
         * @param string $str
         * @return string
         */
        public function base62_encode($str) {
            $out = '';
            for($t=floor(log10($str)/log10(62)); $t>=0; $t--) {
                $a = floor($str / pow(62, $t));
                $out = $out.substr($this->key, $a, 1);
                $str = $str - ($a * pow(62, $t));
            }
            return $out;
        }

        /**
         * base62解码
         * @param string $str
         * @return string
         */
        public function base62_decode($str) {
            $out = 0;
            $len = strlen($str) - 1;
            for($t=0; $t<=$len; $t++) {
                $out = $out + strpos($this->key, substr($str, $t, 1)) * pow(62, $len - $t);
            }
            return substr(sprintf("%f", $out), 0, -7);
        }

        /**
         * 测试程序
         */
        public function indexAction(){
            header('content-Type:text/html;charset=utf-8');
            $equal = $notequal = 0;
            for($i=0; $i<10000000; $i++){
                $encode = $this -> base62_encode($i);
                $decode = $this -> base62_decode($encode);
                if($decode == $i){
                    $equal++;
                }else{
                    $notequal++;
                    echo "{$i}---{$encode}---{$decode}<br />";
                }
            }
            echo "相等{$equal},不相等{$notequal}<br />";

        }
查看全文 >
2014
12-12

PHP性能分析之Xhprof数据说明

之前介绍了《PHP性能分析之Xhprof安装》和《PHP性能分析之Xhprof的使用》,链接如下:

下面来介绍下Xhprof输出的性能数据说明。

Xhprof性能数据界面如下:

7.png

Incl.       表示Including(包含)的缩写
Excl.       表示Excluding(不包含)的缩写
Function Name:      函数名
Calls:              调用次数
Calls%:             调用次数的百分比(图中带有百分比符号的字段皆表示百分比的意思,所以后面不在介绍)
Incl. Wall Time:    包含子函数执行的所有花费时间。单位:微秒(下同)
Excl. Wall Time:    函数本身执行所花费的时间。
Incl. CPU:          包含子函数执行的所花费的CPU时间。
Excl. CPU:          函数本身执行所花费的CPU时间。
Incl.MemUse:        包含子函数执行的所占用的内存。单位:字节(下同)
Excl.MemUse:        函数本身执行所占用的内存。
Incl.PeakMemUse:    包含子函数执行,所占用内存的峰值。
Excl.PeakMemUse:    函数本身执行所占用内存的峰值。
查看全文 >
2014
12-03

PHP性能分析之Xhprof的使用

上一节介绍了《PHP性能分析之Xhprof的安装》(点击查看详情)。
这一节来介绍下Xhprof的具体使用。

Xhprof的使用方式,直接贴示例代码,如下:

//在代码的开头处添加启动“xhprof性能分析器”函数
xhprof_enable(); 

function test(){
    for($i=0; $i<10000; $i++){
        ......
    }
}
test();

//在代码的结束处添加“停止xhprof分析器”函数
$xhprofData = xhprof_disable();

//输出xhprof分析器收集到的性能数据
var_dump($xhprofData);
查看全文 >
2014
12-01

PHP性能分析之Xhprof安装

Xhprof是facebook开源的一个分层PHP性能分析工具。可以收集函数级别的请求次数和各种指标,包括阻塞时间,CPU时间和内存使用情况。一个函数的开销,还可以细分成调用者和被调用者的开销。

下面介绍Xhprof的安装:

1、获取安装包
wget http://pecl.php.net/get/xhprof-0.9.4.tgz

如下图所示:
2.png


2、解压安装包
tar -zxvf xhprof-0.9.4.tgz
cd xhprof-0.9.4
cd extension
查看全文 >
2014
11-27

ab基准测试分析

Apache Benchmark(ab)工具是最著名的基准测试工具之一,它是默认的Apache安装的一部分,能够通过模拟对特定URL的任意数量请求来对Web服务器进行负载测试。ab工具提供以下信息:

  • 传输的总数据大小(以字节为单位)
  • Web服务器在模拟流量下每秒可以支持的请求总数
  • 完成一个请求所花费的最长时间(以毫秒为单位)
  • 完成一个请求所花费的最短时间(以毫秒为单位)

使用ab工具还可以运行很多不同的负载模拟,例如:

  • 对Web文档的模拟请求
  • 指定时间内的请求
  • 打开Keep-Alive时的请求

最重要的是,Apache Benchmark是独立于Apache Web服务器的,也就是不启动web服务器,也可以运行此工具。

查看全文 >
2013
07-12

常用正则表达式

1、身份证正则验证:

/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/

2、邮箱正则验证:

/[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?/

3、手机号码正则验证(支持虚拟号段):

/^((13[0-9])|(15[^4])|(14[57])|(17[0678])|(18[0,0-9]))\\d{8}$/

4、固定电话正则验证:

/\d{7,8}|\d{3}-\d{8}|\d{4}-\d{7,8}/

5、中文、英文、数字和中下划线:

#php正则表达式:
/^[a-zA-Z0-9_\-\x{4e00}-\x{9fa5}]+$/u

#js正则:
/^[a-zA-Z0-9_\-\u4e00-\u9fa5]+$/
查看全文 >
微信扫一扫