网易云笔记如何支持php代码提亮,笔记 · PHP代码库 · 看云

## 笔记目录

[TOC=2,3]

* * * * *

- ### 其他

* * * * *

>[info]#### 解决方案

~~~

1)flush和ob_flush的正确顺序,正确应是,先ob_flush再flush 如下:

ob_flush();如下:

flush();

如果Web服务器的操作系统是windows系统,那顺序颠倒或者不使用ob_flush()也不会出现问题。[有待求证 ] 但是在Linux系统上就无法刷新输出缓冲。

~~~

- ### 环境常量

* * * * *

>[info]#### 解决方案

~~~

define('IS_CLI', PHP_SAPI == 'cli' ? true : false);

define('IS_WIN', strpos(PHP_OS, 'WIN') !== false);

define('START_TIME', microtime(true));

define('START_MEM', memory_get_usage());

~~~

- ### 格式化memory_get_usage()输出

* * * * *

>[info]#### 解决方案

~~~

function convert($size){

$unit=array('b','kb','mb','gb','tb','pb');

return @round($size/pow(1024,($i=floor(log($size,1024)))),2).' '.$unit[$i];

}

echo convert(memory_get_usage(true));

输出:256 kb

~~~

- ### 统计从开始到统计时的时间

* * * * *

>[info]#### 解决方案

~~~

/**

* 统计从开始到统计时的时间(微秒)使用情况 返回值以秒为单位

* @param integer|string $dec 小数位

* @return integer

*/

public static function getUseTime($dec = 6)

{

return number_format((microtime(true) - START_TIME), $dec);

}

~~~

- ### 获取文件加载信息

* * * * *

>[info]#### 解决方案

~~~

/**

* 获取文件加载信息

* @param bool $detail 是否显示详细

* @return integer|array

*/

public static function getFile($detail = false)

{

if ($detail) {

$files = get_included_files();

$info = [];

foreach ($files as $key => $file) {

$info[] = $file . ' ( ' . number_format(filesize($file) / 1024, 2) . ' KB )';

}

return $info;

}

return count(get_included_files());

}

~~~

- ### 验证是否存在

* * * * *

>[info]#### 解决方案

~~~

1)验证类中方法是否存在

if(!method_exists($this, $trigger)){

$result=array('status'=>400,'message'=>"该任务类型的触发器({$trigger})暂未开发,若使用,请先联系技术!");

}

1)验证文件是否存在

if (is_file(APPPATH.'models/exp/exp_'.strtolower($express_model).'.php')) {

。。。。

}

if (file_exists(APPPATH.'models/exp/exp_'.strtolower($express_model).'.php')) {

。。。。

}

~~~

- ### 定义请求数据的方法

* * * * *

>[info]#### 解决方案

~~~

//定义请求数据的方法

define('IS_POST',strtolower($_SERVER["REQUEST_METHOD"]) == 'post');//判断是否是post方法

define('IS_GET',strtolower($_SERVER["REQUEST_METHOD"]) == 'get');//判断是否是get方法

define('IS_AJAX',isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest');//判断是否是ajax请求

~~~

- ### PHP 按位与(&)运算符应用实践

* * * * *

>[info]#### 解决方案

1、PHP手册中的讲解为:

> $a & $b And(按位与) 将把 $a 和 $b 中都为 1 的位设为 1。

2、应用1:&的运算方法(奇偶性判断)

> 整数与“1”进行按位与运算,运算结果为“0”表示为偶数,运算结果为“1”表示为奇数。

3、应用2:用户权限的判断

> 假设一个系统中用户权限分配模块,设置权限为1=>查看,2=>新增, 4=>修改 ,8=>删除,如此存储用户的权限,只需要在数据库中存一个整数合即可,不用存储间隔出的字符串。

>

> 如果用户拥有新增和查看权限,功能代码为:1+2 = 3;用户拥有所有权限,则功能 代码为:1+2+4+8 = 15;

>

> 用户所有用的权限为12

>

> 检测用户权限是否拥有修改权限:12&4 结果为4,表示拥有修改权限。

>

> 检测用户权限是否拥有新增权限:12&2 结果为0,表示没有新增权限。

>

> 在数据库中查找所有拥有修改权限的用户:select \* from user where (user\_mod&4) > 0,即可查出来所有拥有修改权限的用户。

>

~~~

//按位或:

$res=(1 | 2 | 8 | 32);

var_dump($res);

echo("\n"); //int(43)

//按位与:

$res=((43 & (1 | 2 | 8 | 32 | 64 | 128 | 1024 | 2048 | 4096 | 8192 | 16384)));

var_dump($res);

echo("\n"); //int(43)

//按位应用:

$res=((43 & (1 | 2 | 8 | 32 | 64 | 128 | 1024 | 2048 | 4096 | 8192 | 16384)) === (1 | 2 | 8 | 32));

var_dump($res);

echo("\n"); //bool(true)

~~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值