可能重复:
Finding the PHP File (at run time) where a Class was Defined
我正在使用其他人(当前不可用)设置的服务器。我试图找到apache(或其他)正在预加载的类的源代码,以便我可以将源代码更新为该类的正确版本。运行这个:
<?php echo class_exists('className')? "yes": "no"; ?>
(作为整个php文件)打印出来是的。如何找出该课程的文件来源?我已经对服务器进行了操作,并且有一长串文件,但它只是知道我需要更改哪个文件而不需要进行大量的猜测和检查。是否有函数会告诉我带有该类名源代码的文件?
由于
答案 0 :(得分:3)
$r = new ReflectionClass('YourClassName');
echo $r->getFileName();
请参阅http://php.net/manual/en/reflectionclass.getfilename.php
上反思课程的文档页面根据文档,PHP核心(或扩展)定义的类会导致getFileName()
方法返回FALSE
。
if ($r->getFileName() === FALSE) {echo 'Defined by PHP';}
答案 1 :(得分:1)
检查包含路径以查看哪些目录相关。
get_include_path
http://php.net/manual/de/function.get-include-path.php
使用Reflection类获取实际文件 http://de1.php.net/manual/de/reflectionclass.getfilename.php