小巧的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 "生成文档成功,点击此处查看";
}
/**
* 函数名称: 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("
",$getarr);
$str = preg_replace('/[\r]/i','
',$str);
$style = $this->getStyle();
$str = $this->getTable($str);
$str = $style.$str;
Return $str;
}
/**
* 函数名称: etFilepath($filepath,$oldroot,$newroot)
* 函数功能: 设置生成文件的路径
* 输入参数: $filepath -------------- 源文件路径
$oldroot -------------- 源目录路径
$newroot -------------- 目标目录路径
* 函数返回值: string
* 其它说明: 2004-10-13
*/
function setFilepath($filepath,$oldroot,$newroot)
{
$oldroot = str_replace('/',"\\/",$oldroot);
$pattern = "/".$oldroot."(.*)/iU";
$filepath = preg_replace($pattern,'\\1',$filepath);
$newpath = $newroot.$this->docdirname.$filepath;//echo "$newpath
";
$newpath = preg_replace('/(.*\.)(.*[^\.].*)/i','\\1htm',$newpath);
Return $newpath;
}
/**
* 函数名称: getFileDir($path)
* 函数功能: 取得文档目录
* 输入参数: $path ------------- 文档路径
* 函数返回值: string
* 其它说明: 2004-10-13
*/
function getFileDir($path)
{
$getpath = preg_replace('/(.*)(\/.*[^\.].*)/i','\\1',$path);
Return $getpath;
}
/**
* 函数名称: setDoc
* 函数功能: 将注释写入指定目录并生成页面
* 输入参数: $filepath --------------- 目录路径
$content ---------------- 写入的内容
* 函数返回值: 返回值说明
* 其它说明: 说明
*/
function setDoc($filepath,$content)
{
$fp = fopen($filepath,"w+");
flock($fp,LOCK_EX);
fwrite($fp,$content);
flock($fp, LOCK_UN);
}
/**
* 函数名称: mkdirs($path)
* 函数功能: 创建目录
* 输入参数: $path ------------------- 路径
* 函数返回值: none
* 其它说明: 2004-10-13
*/
function mkdirs($path)
{
$adir = explode('/',$path);
$dirlist = '';
$rootdir = $adir[0];
array_shift ($adir);
foreach($adir as $key=>$val)
{
if($val!='.'&&$val!='..')
{
$dirlist .= "/".$val;
$dirpath = $rootdir.$dirlist;
if(!file_exists($dirpath)&&!is_file($dirpath))
{
mkdir($dirpath);
chmod($dirpath,0777);
}
}
}
}
/**
* 函数名称: filter($item,$arr=null)
* 函数功能: 过滤
* 输入参数: $item -------------- 内容
$arr --------------- 过滤项
* 函数返回值: bool
* 其它说明: 2004-10-13
*/
function filter($item,$arr=null)
{
$item = strtolower($item);
$filter = explode(',',$arr);
if($arr==null||!in_array($item,$filter))
{
Return true;
}
else
{
Return false;
}
}
/**
* 函数名称: createFrame($root)
* 函数功能: 生成框架页
* 输入参数: $root --------------- 首页的存放目录
* 函数返回值: str
* 其它说明: 2004-10-13
*/
function createFrame($root)
{
$str = '

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











많은 사용자들이 스마트 시계를 선택할 때 Huawei 브랜드를 선택하게 됩니다. 그 중 Huawei GT3pro와 GT4가 가장 인기 있는 선택입니다. 두 제품의 차이점을 궁금해하는 사용자가 많습니다. Huawei GT3pro와 GT4의 차이점은 무엇입니까? 1. 외관 GT4: 46mm와 41mm, 재질은 유리 거울 + 스테인레스 스틸 본체 + 고해상도 섬유 후면 쉘입니다. GT3pro: 46.6mm 및 42.9mm, 재질은 사파이어 유리 + 티타늄 본체/세라믹 본체 + 세라믹 백 쉘입니다. 2. 건강한 GT4: 최신 Huawei Truseen5.5+ 알고리즘을 사용하면 결과가 더 정확해집니다. GT3pro: ECG 심전도, 혈관 및 안전성 추가

Linux 시스템에서 PATH 환경 변수를 설정하는 방법 Linux 시스템에서 PATH 환경 변수는 시스템이 명령줄에서 실행 파일을 검색하는 경로를 지정하는 데 사용됩니다. PATH 환경 변수를 올바르게 설정하면 어느 위치에서나 시스템 명령과 사용자 정의 명령을 실행할 수 있습니다. 이 기사에서는 Linux 시스템에서 PATH 환경 변수를 설정하는 방법을 소개하고 자세한 코드 예제를 제공합니다. 현재 PATH 환경 변수를 봅니다. 현재 PATH 환경 변수를 보려면 터미널에서 다음 명령을 실행합니다. echo$P

함수는 특정 기능을 포함하는 재사용 가능한 코드 블록으로, 입력 매개변수를 받아들이고 특정 작업을 수행하며 결과를 반환하는 것이 목적입니다. 코드 재사용성과 유지 관리성을 향상시키는 코드입니다.

Windows 11에서 캡처 도구가 작동하지 않는 이유 문제의 근본 원인을 이해하면 올바른 솔루션을 찾는 데 도움이 될 수 있습니다. 캡처 도구가 제대로 작동하지 않는 주요 이유는 다음과 같습니다. 초점 도우미가 켜져 있습니다. 이렇게 하면 캡처 도구가 열리지 않습니다. 손상된 응용 프로그램: 캡처 도구가 실행 시 충돌하는 경우 응용 프로그램이 손상되었을 수 있습니다. 오래된 그래픽 드라이버: 호환되지 않는 드라이버가 캡처 도구를 방해할 수 있습니다. 다른 응용 프로그램의 간섭: 실행 중인 다른 응용 프로그램이 캡처 도구와 충돌할 수 있습니다. 인증서가 만료되었습니다. 업그레이드 프로세스 중 오류로 인해 이 문제가 발생할 수 있습니다. 이 문제는 대부분의 사용자에게 적합하며 특별한 기술 지식이 필요하지 않습니다. 1. Windows 및 Microsoft Store 앱 업데이트

경로 환경 변수를 설정하는 방법: 1. Windows 시스템에서 "시스템 속성"을 열고 "속성" 옵션을 클릭한 후 "고급 시스템 설정"을 클릭하고 "시스템 속성" 창에서 "고급" 탭을 선택한 다음 "환경 변수" " 버튼을 클릭하고 "경로"를 찾아 클릭하여 편집하고 저장합니다. 2. Linux 시스템의 경우 터미널을 열고 bash 구성 파일을 열고 끝에 "export PATH=$PATH: 파일 경로"를 추가합니다. 3. MacOS 시스템의 경우 작업은 위와 동일합니다.

1부: 초기 문제 해결 단계 Apple 시스템 상태 확인: 복잡한 솔루션을 살펴보기 전에 기본 사항부터 시작해 보겠습니다. 문제는 귀하의 기기에 있는 것이 아닐 수도 있습니다. Apple 서버가 다운되었을 수도 있습니다. Apple의 시스템 상태 페이지를 방문하여 AppStore가 제대로 작동하는지 확인하세요. 문제가 있는 경우 Apple이 문제를 해결하기를 기다리는 것뿐입니다. 인터넷 연결 확인: "AppStore에 연결할 수 없음" 문제는 때때로 연결 불량으로 인해 발생할 수 있으므로 인터넷 연결이 안정적인지 확인하십시오. Wi-Fi와 모바일 데이터 간을 전환하거나 네트워크 설정을 재설정해 보세요(일반 > 재설정 > 네트워크 설정 재설정 > 설정). iOS 버전을 업데이트하세요.

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

이번 글에서는 enumerate() 함수와 Python에서 “enumerate()” 함수의 목적에 대해 알아봅니다. enumerate() 함수란 무엇입니까? Python의 enumerate() 함수는 데이터 컬렉션을 매개변수로 받아들이고 열거형 객체를 반환합니다. 열거형 객체는 키-값 쌍으로 반환됩니다. 키는 각 항목에 해당하는 인덱스이고 값은 항목입니다. 구문 enumerate(iterable,start) 매개변수 iterable - 전달된 데이터 컬렉션은 iterablestart라는 열거형 개체로 반환될 수 있습니다. - 이름에서 알 수 있듯이 열거형 개체의 시작 인덱스는 start로 정의됩니다. 우리가 무시한다면
