PHP は複数レベルのディレクトリを再帰的に作成します (途中で面接の質問を解決するプロセス)
PHP は再帰的に複数レベルのディレクトリを作成します (面接の質問を解決するプロセス)
今日の面接の質問を見て、複数レベルのディレクトリを作成できる関数を書くように言われました:
私の第一印象は、再帰を使用して作成することです。具体的なアイデアは次のとおりです。
<span style="color: #0000ff;">function</span> Directory(<span style="color: #800080;">$dir</span><span style="color: #000000;">){</span><span style="color: #0000ff;"> if</span>(<span style="color: #008080;">is_dir</span>(<span style="color: #800080;">$dir</span>) || @<span style="color: #008080;">mkdir</span>(<span style="color: #800080;">$dir</span>,0777)){ <span style="color: #008000;">//</span><span style="color: #008000;">查看目录是否已经存在或尝试创建,[email protected],会报一个“父目录不存在”的警告。</span> <span style="color: #0000ff;">echo</span> <span style="color: #800080;">$dir</span>."创建成功<br>"; <span style="color: #008000;">//</span><span style="color: #008000;">输出创建成功的目录</span><span style="color: #000000;"> }</span><span style="color: #0000ff;">else</span><span style="color: #000000;">{ </span><span style="color: #800080;">$dirArr</span>=<span style="color: #008080;">explode</span>('/',<span style="color: #800080;">$dir</span>); <span style="color: #008000;">//</span><span style="color: #008000;">当子目录没创建成功时,试图创建父目录,用explode()函数以'/'分隔符切割成一个数组</span> <span style="color: #008080;">array_pop</span>(<span style="color: #800080;">$dirArr</span>); <span style="color: #008000;">//</span><span style="color: #008000;">将数组中的最后一项(即子目录)弹出来,</span> <span style="color: #800080;">$newDir</span>=<span style="color: #008080;">implode</span>('/',<span style="color: #800080;">$dirArr</span>); <span style="color: #008000;">//</span><span style="color: #008000;">重新组合成一个文件夹字符串</span><span style="color: #000000;"> Directory(</span><span style="color: #800080;">$newDir</span>); <span style="color: #008000;">//</span><span style="color: #008000;">试图创建父目录</span> <span style="color: #0000ff;">if</span>(@<span style="color: #008080;">mkdir</span>(<span style="color: #800080;">$dir</span>,0777<span style="color: #000000;">)){ </span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$dir</span>."创建成功<br>"<span style="color: #000000;">; } </span><span style="color: #008000;">//</span><span style="color: #008000;">再次试图创建子目录,成功输出目录名</span><span style="color: #000000;"> }}Directory(</span>"A/B/C/D/E/F");
出力結果は図に示すようになります。
しかし、マニュアルのファイル関数を見ると、dirname() 関数のプロトタイプは次のとおりです。
string dirname (string $path) この関数は、ファイルへの完全なパスを含む文字列を返します。ファイル名を削除します。 Windows では、スラッシュ (/) とバックスラッシュ () の両方をディレクトリ区切り文字として使用できます。他の状況では、スラッシュ (/) になります。はわずかに最適化できます:
<span style="color: #0000ff;">function</span> Directory(<span style="color: #800080;">$dir</span><span style="color: #000000;">){ </span><span style="color: #0000ff;">if</span>(<span style="color: #008080;">is_dir</span>(<span style="color: #800080;">$dir</span>) || @<span style="color: #008080;">mkdir</span>(<span style="color: #800080;">$dir</span>,0777<span style="color: #000000;">)){ </span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$dir</span>."创建成功<br>"<span style="color: #000000;">; }</span><span style="color: #0000ff;">else</span><span style="color: #000000;">{ Directory(</span><span style="color: #008080;">dirname</span>(<span style="color: #800080;">$dir</span><span style="color: #000000;">)); </span><span style="color: #0000ff;">if</span>(@<span style="color: #008080;">mkdir</span>(<span style="color: #800080;">$dir</span>,0777<span style="color: #000000;">)){ </span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$dir</span>."创建成功<br>"<span style="color: #000000;">; } }}</span>
その後、インターネットで答えを検索したところ、非常に洞察力に富んだ答えを見つけました。
<span style="color: #0000ff;">function</span> Directory( <span style="color: #800080;">$dir</span><span style="color: #000000;"> ){ </span><span style="color: #0000ff;">return</span> <span style="color: #008080;">is_dir</span> ( <span style="color: #800080;">$dir</span> ) or Directory(<span style="color: #008080;">dirname</span>( <span style="color: #800080;">$dir</span> )) and <span style="color: #008080;">mkdir</span> ( <span style="color: #800080;">$dir</span> , 0777<span style="color: #000000;">);}</span>
is_dir ( $dir ) または (Directory(dirname( $dir )) および mkdir ( $dir ) , 0777)) ;
まず、ターゲット ディレクトリが存在するかどうかを判断します。存在する場合は、 or の短絡特性に応じて、以下全体が短絡され、実行がスキップされます。ターゲットディレクトリが存在しない場合、次の関数本体が実行されます:Directory(dirname( $dir )) および mkdir ( $dir , 0777)
最初に再帰の目的を考えました。最初に再帰を実行して、その親ディレクトリ (dirname($dir)) が作成されたことを確認します。これにより、後続の mkdir() 関数は、サブディレクトリを作成して見つからないときに警告を発行しません。親ディレクトリ。再帰の深さを入力後、最も深いルートディレクトリが存在することを確認した後、ルートディレクトリから下に向かって順番にディレクトリを作成していきます。
最後に、仕事を探している人には、オンラインで大手企業の面接質問をいくつか見つけて行うことをお勧めします。結局のところ、試験はより包括的で複雑です。 -深さ 知識を学ぶときは、質問もブラッシュアップしてください。最初は機能が使い果たされるまでに何度か最適化しました。普通に。
また、興味深い面接の質問をいくつか見つけて、将来共有する予定です。 このブログ投稿が役立つと思われる場合は、私を推薦するかフォローしてください。質問がある場合は、以下にメッセージを残してください。ありがとうございます。

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

ホットトピック









ログイン画面に「組織から PIN の変更を求められています」というメッセージが表示されます。これは、個人のデバイスを制御できる組織ベースのアカウント設定を使用しているコンピューターで PIN の有効期限の制限に達した場合に発生します。ただし、個人アカウントを使用して Windows をセットアップした場合、エラー メッセージは表示されないのが理想的です。常にそうとは限りませんが。エラーが発生したほとんどのユーザーは、個人アカウントを使用して報告します。私の組織が Windows 11 で PIN を変更するように要求するのはなぜですか?アカウントが組織に関連付けられている可能性があるため、主なアプローチはこれを確認することです。ドメイン管理者に問い合わせると解決できます。さらに、ローカル ポリシー設定が間違っていたり、レジストリ キーが間違っていたりすると、エラーが発生する可能性があります。今すぐ

Windows 11 では、新鮮でエレガントなデザインが前面に押し出されており、最新のインターフェイスにより、ウィンドウの境界線などの細部をカスタマイズして変更することができます。このガイドでは、Windows オペレーティング システムで自分のスタイルを反映した環境を作成するのに役立つ手順について説明します。ウィンドウの境界線の設定を変更するにはどうすればよいですか? + を押して設定アプリを開きます。 Windows [個人用設定] に移動し、[色の設定] をクリックします。ウィンドウの境界線の色の変更設定ウィンドウ 11" width="643" height="500" > [タイトル バーとウィンドウの境界線にアクセント カラーを表示する] オプションを見つけて、その横にあるスイッチを切り替えます。 [スタート] メニューとタスク バーにアクセント カラーを表示するにはスタート メニューとタスク バーにテーマの色を表示するには、[スタート メニューとタスク バーにテーマを表示] をオンにします。
![Active Directory ユーザーとコンピュータが見つからない [3 つの方法で解決]](https://img.php.cn/upload/article/000/465/014/168196830849131.png?x-oss-process=image/resize,m_fill,h_207,w_330)
Active Directory ユーザーとコンピューター (ADUC) の損失は、多くの Windows Pro ユーザーから報告されている最もイライラする問題の 1 つです。 ADUC は、管理者が Microsoft Active Directory を管理できるようにする優れた MMC スナップインです。ただし、何らかの理由で、Windows Server または Enterprise/Pro エディションにはありません。欠落している理由とそれを修正する方法を詳しく見てみましょう。 Windows 11 には Active Directory がありますか? Active Directory は、リモートで管理したい人にとって便利です。

デフォルトでは、Windows 11 のタイトル バーの色は、選択したダーク/ライト テーマによって異なります。ただし、任意の色に変更できます。このガイドでは、デスクトップ エクスペリエンスを変更し、視覚的に魅力的なものにするためにカスタマイズする 3 つの方法について、段階的な手順を説明します。アクティブなウィンドウと非アクティブなウィンドウのタイトル バーの色を変更することはできますか?はい、設定アプリを使用してアクティブなウィンドウのタイトル バーの色を変更したり、レジストリ エディターを使用して非アクティブなウィンドウのタイトル バーの色を変更したりできます。これらの手順を学習するには、次のセクションに進んでください。 Windows 11でタイトルバーの色を変更するにはどうすればよいですか? 1. 設定アプリを使用して + を押して設定ウィンドウを開きます。 Windows「個人用設定」に進み、

Windows インストーラー ページに「問題が発生しました」というメッセージとともに「OOBELANGUAGE」というメッセージが表示されますか?このようなエラーが原因で Windows のインストールが停止することがあります。 OOBE とは、すぐに使えるエクスペリエンスを意味します。エラー メッセージが示すように、これは OOBE 言語の選択に関連する問題です。心配する必要はありません。OOBE 画面自体から気の利いたレジストリ編集を行うことで、この問題を解決できます。クイックフィックス – 1. OOBE アプリの下部にある [再試行] ボタンをクリックします。これにより、問題が発生することなくプロセスが続行されます。 2. 電源ボタンを使用してシステムを強制的にシャットダウンします。システムの再起動後、OOBE が続行されます。 3. システムをインターネットから切断します。 OOBE のすべての側面をオフライン モードで完了する

タスクバーのサムネイルは楽しい場合もありますが、気が散ったり煩わしい場合もあります。この領域にマウスを移動する頻度を考えると、重要なウィンドウを誤って閉じてしまったことが何度かある可能性があります。もう 1 つの欠点は、より多くのシステム リソースを使用することです。そのため、リソース効率を高める方法を探している場合は、それを無効にする方法を説明します。ただし、ハードウェアの仕様が対応可能で、プレビューが気に入った場合は、有効にすることができます。 Windows 11でタスクバーのサムネイルプレビューを有効にする方法は? 1. 設定アプリを使用してキーをタップし、[設定] をクリックします。 Windows では、「システム」をクリックし、「バージョン情報」を選択します。 「システムの詳細設定」をクリックします。 [詳細設定] タブに移動し、[パフォーマンス] の下の [設定] を選択します。 「視覚効果」を選択します

Windows 11 のディスプレイ スケーリングに関しては、好みが人それぞれ異なります。大きなアイコンを好む人もいれば、小さなアイコンを好む人もいます。ただし、適切なスケーリングが重要であることには誰もが同意します。フォントのスケーリングが不十分であったり、画像が過度にスケーリングされたりすると、作業中の生産性が大幅に低下する可能性があるため、システムの機能を最大限に活用するためにカスタマイズする方法を知る必要があります。カスタム ズームの利点: これは、画面上のテキストを読むのが難しい人にとって便利な機能です。一度に画面上でより多くの情報を確認できるようになります。特定のモニターおよびアプリケーションにのみ適用するカスタム拡張プロファイルを作成できます。ローエンド ハードウェアのパフォーマンスの向上に役立ちます。画面上の内容をより詳細に制御できるようになります。 Windows 11の使用方法

画面の明るさは、最新のコンピューティング デバイスを使用する上で不可欠な部分であり、特に長時間画面を見る場合には重要です。目の疲れを軽減し、可読性を向上させ、コンテンツを簡単かつ効率的に表示するのに役立ちます。ただし、設定によっては、特に新しい UI が変更された Windows 11 では、明るさの管理が難しい場合があります。明るさの調整に問題がある場合は、Windows 11 で明るさを管理するすべての方法を次に示します。 Windows 11で明るさを変更する方法【10の方法を解説】 シングルモニターユーザーは、次の方法でWindows 11の明るさを調整できます。これには、ラップトップだけでなく、単一のモニターを使用するデスクトップ システムも含まれます。はじめましょう。方法 1: アクション センターを使用する アクション センターにアクセスできる
