Rumah > pembangunan bahagian belakang > tutorial php > 类文件方法过程截取.请教用什么方法比较快呢

类文件方法过程截取.请教用什么方法比较快呢

WBOY
Lepaskan: 2016-06-13 13:26:41
asal
775 orang telah melayarinya

类文件方法过程截取.请问用什么方法比较快呢?
我现在想到的方法
只有3种
1.使用 fopen while(feof) 获取 { } 数量截取方法体内容.
2.使用 explode('function',fopen)
3.递归 和 1. 差不多没什么区别。

我想问有什么方法比较快的呢?
例如

PHP code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
<?php class a
{
    public function a(){echo a;}
    /*b*/
    public function b()
    {echo b;}
    //c
    public function c(){
       echo c;
    }
}
?>

Salin selepas log masuk

例子上方法体内容可能比较简单. 实际比较复杂.
请问有什么方法可以 更容易获取 方法体内容过程吗??
在这里先谢谢啦

------解决方案--------------------
get_class_methods($cls);
------解决方案--------------------
反射结合数组截取
PHP code
class a
{
    public function a(){echo a;    }
    /*b*/
    public function b(){
        echo b;
    }
    //c
    public function c(){
       echo c;
    }
}

$class = new ReflectionClass('a');
$method=$class->getMethod('b');
$filename=$method->getFileName();//获取文件名
$start=$method->getStartLine();//获取方法起始行
$length=$method->getEndLine()-$start;//获取方法体长度

$source=file($filename);
$code = implode('',array_slice($source,$start-1,$length+1));
echo $code;

/*     public function b(){
        echo b;
    } */ <div class="clear">
                 
              
              
        
            </div>
Salin selepas log masuk
Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan