コンパクトなPHPドキュメント生成クラス
プロジェクトの開発中に、他の人が php ドキュメントの管理が不足していることに気付きました。しかし、そのドキュメントには多くの機能がありませんでした
/**
* クラス名: doc
* 説明: ドキュメント生成クラス
* その他: ソースディレクトリを設定した後、生成されるディレクトリを絶対パスで指定することができます。 モード
* 1 は調整可能です。通常のタイプ、つまりスラッシュ ** で始まり * スラッシュで終わる
* 2 は、スラッシュ * で始まり * スラッシュで終わるものはすべて、ドキュメントの一部になります
。*/
class doc
{
var $docdirname;
var $docdir;
/**
* 関数名: doc()
* 関数関数: 構築
* 入力パラメータ: なし
* 関数戻り値: 戻り値の説明
* その他の命令: 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)
* 関数関数: redirect
* 入力パラメータ: $path ---------------- リダイレクトパス
* 関数の戻り値: 戻り値の説明
*その他の指示: 2004-10-13
*/
function redirect($path)
{
echo "ドキュメントは正常に生成されました。ここをクリックして表示します";
}
/**
* 関数名:loopDir($root,$filter=null)
* 関数: ディレクトリのトラバース
* 入力パラメータ: $root ------------------- ソースディレクトリ
$filter ----------------- Filter
* 関数の戻り値: array
* その他の命令: 2004-10-13
*/
functionloopDir($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->gt;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 = strto lower($type);
if( $type=="php")
{
Return true;
}
else
{
Return false;
}
}
/**
* 関数名: getContent($path)
* 関数機能: ファイルの内容を読み取る
* 入力パラメータ: $path ------------------- ファイルパス
* 関数の戻り値値: 文字列
* その他の指示: 2004-10-13
*/
function getContent($path)
{
$fp = ファイル($パス);
$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 = '//(*)[rn].**//isU';
ブレーク;
case '2':
$pattern = '//*.** //isU';
break;
}
preg_match_all($pattern,$content,$carr);
$getarr = array();
foreach($carr[0] as $key=>$val)
{
$getarr[] = トリム($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 -------------- ターゲット ディレクトリ パス
* 関数の戻り値: 文字列
*その他の説明: 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 ------------------- パス
* 関数の戻り値:なし
*その他の説明: 2004-10-13
*/
関数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)
* 関数: filter
* 入力パラメータ: $item -------------- Content
$arr ---- - ---------- Filter item
* 関数の戻り値: bool
* その他の命令: 2004-10-13
*/
関数 filter($item,$arr=null)
{
$item = strto lower($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 = '
< ;/noframes>
';
$this->docdir = $root."index.htm";
$this->setDoc($this->docdir,$str);
}
/**
* 関数名: createMenu($root,$data)
* 関数: メニューの生成
* 入力パラメーター: $root ------------------- ページをディレクトリ
$data ------------------ Content
* 関数の戻り値: string
* その他の命令: 2004-10-13
*/
function createMenu($root,$data)
{
$path = $root."menu.htm";
$str = $this->getStyle();
$ str.= "
".$val['name']." |
$this->setDoc($path,$str);
}
/**
* 関数名: getStyle()
* 関数 function: style
* 入力パラメータ: none
* 関数の戻り値: string
* その他の命令: 2004-10-13
*/
function getStyle()
{
$str = '
< style>
table {
font-family: "Courier New","宋体";
border-collapse: Collapse;
word-break:break-all;
}
td {
font-family: "Courier New", "宋体";
font-size: 12px;
line-height: 22px;
}
';
Return $str;
}
/**
* 関数名: getTable($content)
* 関数関数: コンテンツをテーブルに入れる
* 入力パラメータ: $content ------------ コンテンツ
* 関数の戻り値: string
* その他指示: 2004-10-13
*/
function getTable($ content)
{
$str = "
".$content." |
Return $str;
}
}
//
$d を使用= 新しいドキュメント;
$filter = "adodb,smarty,cvs,templates,templates_c";
$d->createDoc("e:/www/kpub20/class/","e:/www/test/aaa/ ",1,$filter);
?>

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









多くのユーザーはスマートウォッチを選ぶときにファーウェイブランドを選択しますが、その中でもファーウェイ GT3pro と GT4 は非常に人気のある選択肢であり、多くのユーザーはファーウェイ 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

ファンクションとは、関数を意味します。これは、特定の関数を備えた再利用可能なコード ブロックです。プログラムの基本コンポーネントの 1 つです。入力パラメータを受け取り、特定の操作を実行し、結果を返すことができます。その目的は、再利用可能なコード ブロックをカプセル化することです。コードの再利用性と保守性を向上させるコード。

Windows 11 で Snipping Tool が機能しない理由 問題の根本原因を理解すると、適切な解決策を見つけるのに役立ちます。 Snipping Tool が正しく動作しない主な理由は次のとおりです。 フォーカス アシスタントがオンになっている: これにより、Snipping Tool が開かなくなります。破損したアプリケーション: 起動時にスニッピング ツールがクラッシュする場合は、破損している可能性があります。古いグラフィック ドライバー: 互換性のないドライバーは、スニッピング ツールに干渉する可能性があります。他のアプリケーションからの干渉: 実行中の他のアプリケーションが Snipping Tool と競合する可能性があります。証明書の有効期限が切れています: アップグレード プロセス中のエラーにより、この問題が発生する可能性があります。これらの簡単な解決策は、ほとんどのユーザーに適しており、特別な技術知識は必要ありません。 1. Windows および Microsoft Store アプリを更新する

パス環境変数を設定する方法: 1. Windows システムでは、[システムのプロパティ] を開き、[プロパティ] オプションをクリックし、[システムの詳細設定] をクリックし、[システムのプロパティ] ウィンドウで [詳細] タブを選択します。 「環境変数」ボタンをクリックし、「パス」を見つけてクリックして編集し、保存します。 2. Linux システムの場合は、ターミナルを開き、bash 構成ファイルを開き、ファイルの最後に「export PATH=$PATH: file path」を追加します。ファイルを保存して保存します; 3. MacOS システムの場合、操作は上記と同じです。

パート 1: 最初のトラブルシューティング手順 Apple のシステムステータスを確認する: 複雑な解決策を掘り下げる前に、基本から始めましょう。問題はデバイスにあるのではなく、Apple のサーバーがダウンしている可能性があります。 Apple のシステム ステータス ページにアクセスして、AppStore が適切に動作しているかどうかを確認してください。問題があれば、Apple が修正してくれるのを待つしかありません。インターネット接続を確認します。「AppStore に接続できません」問題は接続不良が原因である場合があるため、安定したインターネット接続があることを確認してください。 Wi-Fi とモバイル データを切り替えるか、ネットワーク設定をリセットしてみてください ([一般] > [リセット] > [ネットワーク設定のリセット] > [設定])。 iOS バージョンを更新します。

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

この記事では、Python の enumerate() 関数と「enumerate()」関数の目的について学びます。 enumerate() 関数とは何ですか? Python の enumerate() 関数は、データ コレクションをパラメータとして受け取り、列挙オブジェクトを返します。列挙オブジェクトはキーと値のペアとして返されます。キーは各項目に対応するインデックス、値は項目です。構文 enumerate(iterable,start) パラメータ iterable - 渡されたデータ コレクションは、iterablestart と呼ばれる列挙オブジェクトとして返すことができます。 - 名前が示すように、列挙オブジェクトの開始インデックスは start によって定義されます。無視したら
