PHP查看对象中的所有方法名

  一个类有很多方法,有时候拿不准用哪个方法去处理,可以全部打印出来,一个类都什么方法,一目了然。

<?php
class a
{
    public $a = 1;
    public function __construct() { }
    public function aaa()
    {
        echo "a";
    }
    public function get_name() { }
}
$a = new a();
var_dump( get_class_methods( $a ) );

打印结果:

0 => string '__construct' (length=11)
1 => string 'aaa' (length=3)
2 => string 'get_name' (length=8)

wamp 3.0.6(apache 2.4.23) 配置多站点

     之前开发机器上一直用着wamp2.2,php5.4.3也有点落后了,composer更新很多类都提示要升级php版本了,于是就下载了wampserver3.0.6,软件包200多M。apache2.4.23_mysql5.7.14_php5.6.25-7.0.10。安装之后php5.6,php7.0随意切换。有些项目是mysql的,还是乖乖用5.6吧,毕竟php7没有mysql驱动,可以用mysqli,pdo_mysql。推荐用PDO来操作数据库。

    注意:vc++ 2015要安装,没有的话apache跑不了。

    装完wamp3就要配置多站点了,apache2.4是要将其中的 Require local 修改成 Require all granted

blob.png

    因为我之前的是wamp2.2,很多项目还在之前的旧的目录,所以在apache2.4下授权旧的目录,这样就可以把原来的配置文件复制过来用了,目录授权之后DocumentRoot配置的路径也不用动。在httpd.conf里面属于全局配置,也可以在httpd-vhosts.conf里面单独配置。

blob.png

    最后重启apache。

window wamp下xhprof的安装使用,Graphviz配置

       起因:本地一个网站后台登陆的时候特别卡,卡的我心烦,点击登陆要等待好久,肉眼我还真看不出哪里有毛病,祭出神器来监测下,看看到底哪里卡!最后找到原因是file_put_contents函数,因为请求了淘宝IP地址库的远程接口导致缓慢。因为是我本地缓慢,我的解决办法:判断是127.0.0.1直接return返回,不请求接口,如果线上缓慢可以把请求到的结果缓存到文件或内存,下次碰到同样的ip直接从缓存取出。

淘宝IP地址库http://ip.taobao.com/instructions.php

附上缓慢现场图:

blob.png

blob.png

- 阅读全文 -

根据两点间的经纬度计算距离

/**
 *  @desc 根据两点间的经纬度计算距离
 *  @param float $lat 纬度值
 *  @param float $lng 经度值
 */
function getDistance( $lat1, $lng1, $lat2, $lng2 )
{
    $earthRadius = 6367000; //approximate radius of earth in meters

    $lat1 = ($lat1 * pi() ) / 180;
    $lng1 = ($lng1 * pi() ) / 180;
    $lat2 = ($lat2 * pi() ) / 180;
    $lng2 = ($lng2 * pi() ) / 180;

    $calcLongitude = $lng2 - $lng1;
    $calcLatitude = $lat2 - $lat1;
    $stepOne = pow(sin($calcLatitude / 2), 2) + cos($lat1) * cos($lat2) * pow(sin($calcLongitude / 2), 2);
    $stepTwo = 2 * asin(min(1, sqrt($stepOne)));
    $calculatedDistance = $earthRadius * $stepTwo;

    return round($calculatedDistance);
}

echo getDistance( '39.976315','116.492302','39.976315','116.492302' );


在线计算两点距离网址   http://www.nhc.noaa.gov/gccalc.shtml



概念了解:CGI,FastCGI,PHP-CGI与PHP-FPM

CGI

CGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。

CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。如php,perl,tcl等。

FastCGI

FastCGI像是一个常驻(long-live)型的CGI,它可以一直执行着,只要激活后,不会每次都要花费时间去fork一次(这是CGI最 为人诟病的fork-and-execute 模式)。它还支持分布式的运算,即 FastCGI 程序可以在网站服务器以外的主机上执行并且接受来自其它网站服务器来的请求。

FastCGI是语言无关的、可伸缩架构的CGI开放扩展,其主要行为是将CGI解释器进程保持在内存中并因此获得较高的性能。众所周知,CGI解 释器的反复加载是CGI性能低下的主要原因,如果CGI解释器保持在内存中并接受FastCGI进程管理器调度,则可以提供良好的性能、伸缩性、 Fail- Over特性等等。

- 阅读全文 -