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)

PHP获取各种起止时间

<?php
/* 当日起止时间 */
$today_start = mktime( '0', '0', '0', date('m'), date('d'), date('Y') );
$today_end   = mktime( '23', '59', '59', date('m'), date('d'), date('Y') );
/* 周起止时间 */
$w = date('w') ? : 7;
$week_start = mktime( '0', '0', '0', date('m'), date('d')-$w+1, date('Y') );
$week_end   = mktime( '23', '59', '59', date('m'), date('d')-$w+7, date('Y') );
/* 月起止时间 */
$month_start = mktime( '0', '0', '0', date('m'), 1, date('Y') );
$month_end   = mktime( '23', '59', '59', date('m'), date('t'), date('Y') );
/* 当日起止时间 */
$today_stamp = strtotime('today');
$tomorrow_stamp = strtotime('tomorrow') - 1;


Nginx出现413 Request Entity Too Large错误解决方法

    今天迁移了一个网站到服务器上,LNMP环境,视频上传传不上去。从浏览器的Network报错看到

413 Request Entity Too Large

解决方法:

whereis nginx.conf    # 找到nginx主配置文件  yum安装的在 /etc/nginx  下
vim nginx.conf


找到http{}段,修改或者添加

client_max_body_size 200m;
nginx -s reload     # 重新加载nginx配置


总结: LNMP的环境,大文件上传有 php.ini nginx.conf  所控制。

php.ini 上传大文件主要涉及配置upload_max_filesize和post_max_size两个选项。

查资料看到 post_max_size 最大值最好不要超过2048,就是2G,我也没有超大文件上传,没有深究。

还有在上传大文件时,你会有上传速度慢的感觉,当超过一定的时间,会报脚本执行超过30秒的错误,这是因为在php.ini配置文件中max_execution_time配置选项在作怪,其表示每个脚本最大允许执行时间(秒),0 表示没有限制。你可以适当调整max_execution_time的值,不推荐设定为0。

获取PHP进程中的所有全局变量和常量,所有内置函数

有时候检测程序中所有的变量以及常量,则需要用到一下的函数

$GLOBALS — 保存所有全局变量(只在当前页面中的)
get_defined_vars() — 返回由所有已定义变量所组成的数组(包括全局变量,超全局变量等)
get_defined_constants() — 返回由所有已定义常量所组成的数组

PHP输出所有内置函数+排版

$func = get_defined_functions();
echo '<pre>';
print_r($func['internal']);
echo '</pre>';


PHP中9大缓存技术总结

1、全页面静态化缓存

也就是将页面全部生成html静态页面,用户访问时直接访问的静态页面,而不会去走php服务器解析的流程。此种方式,在CMS系统中比较常见,比如dedecms;

一种比较常用的实现方式是用输出缓存:

Ob_start()******要运行的代码*******$content = Ob_get_contents();****将缓存内容写入html文件*****Ob_end_clean();

2、页面部分缓存

该种方式,是将一个页面中不经常变的部分进行静态缓存,而经常变化的块不缓存,最后组装在一起显示;可以使用类似于ob_get_contents的方式实现,也可以利用类似ESI之类的页面片段缓存策略,使其用来做动态页面中相对静态的片段部分的缓存(ESI技术,请baidu,此处不详讲)。

该种方式可以用于如商城中的商品页;

3、数据缓存

顾名思义,就是缓存数据的一种方式;比如,商城中的某个商品信息,当用商品id去请求时,就会得出包括店铺信息、商品信息等数据,此时就可以将这些数据缓存到一个php文件中,文件名包含商品id来建一个唯一标示;下一次有人想查看这个商品时,首先就直接调这个文件里面的信息,而不用再去数据库查询;其实缓存文件中缓存的就是一个php数组之类;

Ecmall商城系统里面就用了这种方式;

- 阅读全文 -