小巧的php文档生成类

时间:2010-01-07 08:50:13   来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:式可调,模式* 1为常规类型,即以 斜线**开头,以*斜线 结束* 2为扩展类型,凡是 斜线*开头以*斜线 结束的部分都将成为文档的一部分*/class doc{var $docdirname;var $docdir;/*** 函数名称: doc()* 函数功能: 构造* 输入参数: none* 函数返回值: 返回值说明* 其它说明: 2004-10-13*/function doc(){$this->docd...
  正文:

 在项目开发中发现对PHP的文档缺少管理,别人写了一个,功能不多

<?php
/**
* 类名: doc
* 描述: 文档生成类
* 其他: 可以对目录进行过滤,设置好源目录后,请用绝对路径指定生成目录,模式可调,模式
* 1为常规类型,即以 斜线**开头,以*斜线 结束
* 2为扩展类型,凡是 斜线*开头以*斜线 结束的部分都将成为文档的一部分
*/
class doc
{
var $docdirname;
var $docdir;

/**
* 函数名称: doc()
* 函数功能: 构造
* 输入参数: none
* 函数返回值: 返回值说明
* 其它说明: 2004-10-13
*/
function doc()
{
$this->docdirname = "doc/";
}

/**
* 函数名称: createDoc($root,$newdir,$mode="1",$filter=null)
* 函数功能: 创建文档
* 输入参数: $root -------------- 源目录
$newdir ----------- 目标目录
$mode ------------- 模式,1为普通,2为扩展
$filter ------------ 过滤目录
* 函数返回值: 返回值说明
* 其它说明: 2004-10-13
*/
function createDoc($root,$newdir,$mode="1",$filter=null)
{
$getarr = $this->loopDir($root,$filter);
$i = 0;
$this->createFrame($newdir);
foreach($getarr as $key=>$val)
{
if($this->getPhpFiles($val))
{
$content = $this->getContent($val);
$content = $this->getDoc($content,$mode);
$filepath = $this->setFilepath($val,$root,$newdir);
$filedir = $this->getFileDir($filepath);
$this->mkdirs($filedir);
$this->setDoc($filepath,$content);
$data[$i]['url'] = "$filepath";
$data[$i]['name'] = "$val";
$i++;
}
}
if(!empty($data))
{
$this->createMenu($newdir,$data);
$this->redirect($this->docdir);
}
}

/**
* 函数名称: redirect($path)
* 函数功能: 转向
* 输入参数: $path ---------------- 转向路径
* 函数返回值: 返回值说明
* 其它说明: 2004-10-13
*/
function redirect($path)
{
echo "<a href=".$path." target='_blank'>生成文档成功,点击此处查看</a>";
}

/**
* 函数名称: loopDir($root,$filter=null)
* 函数功能: 遍历目录
* 输入参数: $root ------------------- 源目录
$filter ----------------- 过滤
* 函数返回值: array
* 其它说明: 2004-10-13
*/
function loopDir($root,$filter=null)
{
static $getarr=array();
$d = dir($root);
while (false !== ($entry = $d->read()))
{
if ($entry == "." || $entry == "..")
{
continue;
}
if($this->filter($entry,$filter))
{
if(is_dir($root.$entry))
{
$this->loopDir($d->path.$entry."/");
}
else
{
$getarr[] = $d->path.$entry;
}
}
}
$d->close();
Return $getarr;
}

/**
* 函数名称: getPhpFiles($path)
* 函数功能: 提取php文档
* 输入参数: $path ---------------- 文档路径
* 函数返回值: bool
* 其它说明: 2004-10-13
*/
function getPhpFiles($path)
{
$type = preg_replace('/.*/.(.*[^/.].*)/i','//1',$path);
$type = strtolower($type);
if($type=="php")
{
Return true;
}
else
{
Return false;
}
}

/**
* 函数名称: getContent($path)
* 函数功能: 读取文件内容
* 输入参数: $path ------------------- 文件路径
* 函数返回值: string
* 其它说明: 2004-10-13
*/
function getContent($path)
{
$fp = file($path);
$content = implode('',$fp);
Return $content;
}

/**
* 函数名称: getDoc($content,$mode="1")
* 函数功能: 取出php文件中的注释
* 输入参数: $content ------------ 文档内容
$mode --------------- 模式,1为普通,2为扩展
* 函数返回值: string
* 其它说明: 2004-10-13
*/
function getDoc($content,$mode="1")
{
switch($mode)
{
case '1':
$pattern = '///(/*)[/r/n].*/*///isU';
break;
case '2':
$pattern = '////*.*/*///isU';
break;
}

preg_match_all($pattern,$content,$carr);
$getarr = array();
foreach($carr[0] as $key=>$val)
{
$getarr[] = trim($val);
}
$str = implode("<br><br>",$getarr);
$str = preg_replace('/[/r]/i','<br>',$str);
$style = $this->getStyle();
来源:http://www.002pc.com/master/College/Programming/PHP/11566.html

收藏到:

关于《小巧的php文档生成类》文章的评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面

随机文章

    SQL Error: select * from ***_ecms_article where classid='86' and checked=1 order by rand() limit 10

顶出来的热门

    SQL Error: select * from ***_ecms_article where classid='86' and checked=1 order by diggtop desc,id desc limit 10
站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td