通过反射,获取匿名函数的方法体,代码如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18function closure_code(Closure $c) {
$r = new ReflectionFunction($c);
$lines = file($r->getFileName());
$firstLine = $lines[$r->getStartLine() - 1];
// 根据'function'的位置,获取函数开始的位置
$firstLine = substr($firstLine, strpos($firstLine, "function"));
$body = implode("", array_slice($lines, $r->getStartLine(), $r->getEndLine() - $r->getStartLine()));
$result = $firstLine . $body;
$lastLine = $lines[$r->getEndLine() - 1];
preg_match_all("/^( +)/", $lastLine, $blank);
// 根据最后一行的缩进(如果有),进行简单的格式化
if (isset($blank[0][0])) {
$prefixBlank = $blank[0][0];
$result = str_replace("\n{$prefixBlank}", "\n", $result);
}
return $result;
}
PHP检测是否内网ip
发表于
|
分类于
PHP
- 使用PHP自带
filter_var
函数
1 | if (filter_var( |
- 根据内网ip段的范围检测
ip2long
的值
1 | function ip_is_private($ip){ |
- 使用位操作符
>>
进行判断
1 | function ip_is_internal($ip) { |