目录操作_PHP
即兴写的代码,大家可以完善一下
/**
* DirTree.php 递归列出目录
*
* @Copyright
* @Author skyCrack
* @Created
* @Version $Id$
*/
define('_DEBUG', 1);
class DirTree
{
private $_dirRoot;
private $_filter;
private $_tmpBuff = array();
public function __construct($dirRoot = '.')
{
$this->_dirRoot = $dirRoot;
}
//使用 过滤器 或者 设置 $_safeFile ....
public function setFilter($filter)
{
$this->_filter = $filter;
}
public function listDirFile($dir = '', $action='')
{
$curDir = ( empty($dir) ) ? $this->_dirRoot : $dir;
$dh = @opendir($curDir);
while ( $tmpName = readdir($dh) )
{
if ( ($tmpName == '.') || ($tmpName == '..') ) continue;
$totalPath = $curDir . '/' . $tmpName;
if ( is_object($this->_filter) )
{
if ( $this->_filter->doFilter($totalPath) ) continue;
}
if ( is_dir($totalPath) )
{
$this->_tmpBuff['0'][] = $tmpName;
if ( _DEBUG )
{
echo 'is dir:' . $totalPath . '
';
}
if ( is_object($action) )
{
$action->doAction($totalPath);
}
$this->listDirFile($totalPath, $action);
}
else
{
$this->_tmpBuff['1'][] = $tmpName;
if ( _DEBUG )
{
echo 'is file:' . $totalPath . '
';
}
if ( is_object($action) )
{
$action->doAction($totalPath);
}
}
}
closedir($dh);
}
}
interface DirAction
{
public function doAction($args);
}
interface DirFilter
{
public function doFilter($args);
}
class NowAction implements DirAction
{
public function doAction($args)
{
if ( _DEBUG )
{
$numArgs = func_num_args();
echo $numArgs . '
';
for( $i = 0; $i print_r(func_get_arg($i) . '
');
}
}
}
=====================================================
应用 部分
set_time_limit(0);
require 'DirTree.php';
class Gbk2Utf8Action implements DirAction
{
public function doAction($args)
{
$aimPath = ereg_replace('D:/html/web','D:/back', $args);
if ( is_file($args) )
{
$file = implode ('', file($args));
$content = iconv("gb2312", "UTF-8", $file);
$fh = fopen($aimPath, 'w');
fwrite($fh, $content);
fclose($fh);
}
else
{
mkdir($aimPath);
}
}
}
class HtmlPhpFilter implements DirFilter
{
public function doFilter($args)
{
$suffix = substr(strrchr($args, '.'), 1);
if ( ('htm' == $suffix) || ('php' == $suffix) )
return false;
else if ( is_dir($args) )
return false;
else
return true;
}
}
$dirTree = new DirTree();
$action = new Gbk2Utf8Action();
$filter = new HtmlPhpFilter();
$dirTree->setFilter($filter);
$dirTree->listDirFile('D:/html/web', $action);

ホット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)

ホットトピック











PyCharm は非常に人気のある Python 統合開発環境 (IDE) であり、Python 開発をより効率的かつ便利にするための豊富な機能とツールを提供します。この記事では、PyCharm の基本的な操作方法を紹介し、読者がすぐに使い始めてツールの操作に習熟できるように、具体的なコード例を示します。 1. PyCharm をダウンロードしてインストールします。 まず、PyCharm 公式 Web サイト (https://www.jetbrains.com/pyc) にアクセスする必要があります。

C 言語では、if ステートメントは通常、単一の条件に基づいてコードの特定のブロックを実行するために使用されます。ただし、&&、||、! などの論理演算子を使用して、複数の条件を組み合わせて判定することができます。複数の条件を判断するために論理 AND (&&) を使用すること、少なくとも 1 つの条件を判断するために論理 OR (||) を使用すること、単一の条件の否定を判断するために論理 NOT (!) を使用すること、および if ステートメントのネストと括弧の使用が含まれます。優先順位を明確にするため。

sudo (スーパーユーザー実行) は、一般ユーザーが root 権限で特定のコマンドを実行できるようにする、Linux および Unix システムの重要なコマンドです。 sudo の機能は主に次の側面に反映されています。 権限制御の提供: sudo は、ユーザーにスーパーユーザー権限を一時的に取得することを許可することで、システム リソースと機密性の高い操作を厳密に制御します。一般のユーザーは、必要な場合にのみ sudo を介して一時的な権限を取得できるため、常にスーパーユーザーとしてログインする必要はありません。セキュリティの向上: sudo を使用すると、日常的な操作中に root アカウントの使用を回避できます。すべての操作に root アカウントを使用すると、誤った操作や不注意な操作には完全な権限が与えられるため、予期しないシステムの損傷につながる可能性があります。そして

LinuxDeploy の操作手順と注意事項 LinuxDeploy は、ユーザーが Android デバイスにさまざまな Linux ディストリビューションを迅速に展開できるようにする強力なツールで、ユーザーはモバイル デバイスで完全な Linux システムを体験できます。この記事では、LinuxDeploy の操作手順と注意事項を詳しく紹介し、読者がこのツールをより効果的に使用できるように、具体的なコード例を示します。操作手順: Linux のインストールDeploy: まず、インストールします

毎年、Apple が iOS と macOS の新しいメジャー バージョンをリリースする前に、ユーザーは数か月前にベータ版をダウンロードして最初に体験することができます。同ソフトウェアは一般ユーザーと開発者の両方が使用するため、Appleは開発者向けベータ版のパブリックベータ版である開発者版とパブリック版を両方向けに開始した。 iOS の開発者バージョンとパブリック バージョンの違いは何ですか?文字通りに言うと、開発者バージョンは開発者テスト バージョンであり、パブリック バージョンは公開テスト バージョンです。開発者バージョンとパブリック バージョンは、異なるユーザーを対象としています。開発者バージョンは、Apple が開発者によるテストのために使用します。ダウンロードしてアップグレードするには、Apple 開発者アカウントが必要です。

おそらく多くのユーザーは、自宅に未使用のコンピュータを複数台持っており、長期間使用していなかったためにパワーオン パスワードを完全に忘れてしまったため、パスワードを忘れた場合の対処方法を知りたいと考えています。それでは、一緒に見てみましょう。 win10 起動パスワードの F2 キーを押し忘れた場合の対処方法 1. コンピューターの電源ボタンを押し、コンピューターの電源を入れるときに F2 キーを押します (コンピューターのブランドによって、BIOS に入るボタンが異なります)。 2. BIOS インターフェイスで、セキュリティ オプションを見つけます (コンピューターのブランドによって場所が異なる場合があります)。通常は上部の設定メニューにあります。 3. 次に、「SupervisorPassword」オプションを見つけてクリックします。 4. この時点で、ユーザーは自分のパスワードを確認できると同時に、その横にある [有効] を見つけて [無効] に切り替えることができます。

スマートフォンの普及に伴い、スクリーンショット機能は携帯電話を日常的に使用する上で必須のスキルの 1 つになりました。 Huaweiの主力携帯電話の1つであるHuawei Mate60Proのスクリーンショット機能は、当然のことながらユーザーの注目を集めています。今日は、誰もがより便利にスクリーンショットを撮れるように、Huawei Mate60Pro携帯電話のスクリーンショットの操作手順を共有します。まず、Huawei Mate60Pro携帯電話はさまざまなスクリーンショット方法を提供しており、個人の習慣に応じて自分に合った方法を選択できます。以下は、一般的に使用されるいくつかのインターセプトの詳細な紹介です。

Wordでカタログのスタイルを選択すると、操作完了後に自動生成されます。分析 1. コンピューター上の Word に移動し、クリックしてインポートします。 2入力後、ファイルディレクトリをクリックします。 3 次に、ディレクトリのスタイルを選択します。 4. 操作が完了すると、ファイル ディレクトリが自動的に生成されることがわかります。補足: 概要/メモ記事の目次は、第 1 レベルの見出し、第 2 レベルの見出し、および第 3 レベルの見出しを含めて自動的に生成されます (通常は第 3 レベルの見出しまでです)。
