dede获得某模块的基本信息函数GetFileXml()
函数名:GetFileXml($hash, $ftype='hash')
功能:获取<modulefiles></modulefiles>之间的文件内容。
所在文件:include/dedemodule.class.php
这个函数用的非常少,只在一个地方用到就是在我们制作模块安装包时用到,算是比较冷僻的函数了。
函数代码:
function GetFileXml($hash, $ftype='hash')
{
if($ftype=='file') $filename = $hash;
else $filename = $this->modulesPath.'/'.$this->GetHashFile($hash);
$filexml = '';
$fp = fopen($filename,'r') or die("文件 {$filename} 不存在或不可读!");
$start = 0;
while(!feof($fp))
{
$line = fgets($fp,1024);
if($start==0)
{
if(preg_match("/<modulefiles/is",$line))
{
$filexml .= $line;
$start = 1;
}
continue;
}
else
{
$filexml .= $line;
}
}
fclose($fp);
return $filexml;
}看上去比较长,但是,如果我们读过函数GetSystemFile($hashcode, $ntype, $enCode=TRUE)代码,我们就知道了这个函数的比较简单了。
首先当然,时找到要获取代码的文件,然后,打开这个文件,然后,取出.xml文件里面的一行代码,判断是不是第一次遍历这个,若是,则把标志位$start 设为1,下次就不用再进行这个条件里面了。
一直遍历到程序结束,然后,返回获得的字符串,注意的是这个字符串是没有解码的字符串。
