文字列が有効なディレクトリ名であるかどうかをチェックするネイティブ関数またはユーザー関数が必要です。 私はPHPのドキュメントを見てきましたが、既存のディレクトリかどうか、そしてディレクトリの有効な名前ではないかどうかを確認する関数is_dir
しか見つかりませんでした。有効なディレクトリ名の文字列を確認してください
答えて
これはうまくいくはずです。
は、これがうまくいくregex for validating folder name & file name
if (strpbrk($filename, "\\/?%*:|\"<>") === FALSE) {
/* $filename is legal; doesn't contain illegal character. */
}
else {
/* $filename contains at least one illegal character. */
}
を参照してください。 2番目と3番目の引数を必要に応じて変更できます。
if (!mkdir($directory, 0700, true)) {
die('Error: Illegal directory.');
}
ディレクトリ名が有効である場合、これがディレクトリを作成することに注意してください。しかし、私の謙虚な意見では(そしてあなたの特定のユースケースを知らずに)、これはディレクトリ名の妥当性のチェックを処理する多くの言語で好まれる方法です。ディレクトリを作成しようとして失敗した場合は、失敗したことを伝えてください。
この利点は、コードファイルシステムにとらわれず、ディレクトリを検証して作成するのがエラーの起こりやすい方法であることです。これは、他のプロセスやスレッドが、ディレクトリ、および作成時に表示されます。
この方法では、ディレクトリをすぐに作成することを前提としているという欠点があります。
もちろん、mkdir()
が失敗する可能性がある複数の理由があります(たとえば、不十分な権限、ハードウェア障害、無効なディレクトリ名など)。そのため、エラーに基づいてさまざまなエラーメッセージを表示することができます。残念ながら、PHPは他の言語ほど頑強な例外処理をしていませんが、この道を踏み出すべきである場合、が生成する可能性のあるさまざまな警告をキャッチするために、このanswerのようなアプローチを使用できるはずです。
'mkdir( 'dirname/test /../ temp'、0700、true);' @GregoryBurnsのような特定のもののために、 '$ directory'という名前をフィルタリングすることは間違いなく役に立ちます。 ... – Wilt
- 1. 文字の値が有効なRオブジェクト名であることを確認してください
- 2. 文字列の書式を確認してください
- 3. ワイルドカードリゾルバでドメインの有効性を確認してください
- 4. OracleDependencyの有効性を確認してください
- 5. QtでUTF-8文字列が有効であることを確認してください
- 6. 文字列に別の文字列が含まれていないか確認してください。
- 7. Numpy:配列の文字列データ型を確認してください
- 8. 文字列にリストにない文字が含まれていないか確認してください。
- 9. 文字列が数字であることを確認してください
- 10. "http://"のURLを含む文字列を確認してください
- 11. 許可されている文字または文字列の存在を確認してください
- 12. Javascript:パターンに一致する文字列を確認してください
- 13. サブディレクトリ内のディレクトリを動的に確認してください
- 14. Linuxターミナルバッファーで余分な文字がないか確認してください
- 15. 文字列中の指定された文字の数を確認してください
- 16. 文字列に何かがあるか確認してください。
- 17. 古いfacebookのアクセストークンが有効かどうか確認してください
- 18. デフォルトのadmin $共有がServerNameで有効になっていることを確認してください
- 19. Node.js pathがファイルかディレクトリかを確認してください
- 20. Java正規表現の文字列:ip:port stringに有効なIPv4アドレスまたはDNSアドレスが含まれていないか確認してください。
- 21. ドメイン名のみを確認しないでください
- 22. SqlConnectionStringBuilder - 文字列が有効なブール値として認識されない
- 23. URLが有効かどうかを確認してください。
- 24. BitmapDataが有効であることを確認してください
- 25. URLがAndroidで有効かどうかを確認してください。
- 26. 携帯電話の有無を確認してください
- 27. 配列内の文字が特定の文字であることを確認してください
- 28. ユーザの入力がCを使用して有効な文字列かどうかを確認してください。
- 29. 文字列内の文字が1か0かを確認してください
- 30. どのようなcssホバー状態が有効になっているかを確認してください
"有効なディレクトリ名"を定義する各OSにはそれぞれ独自の制限があります。正当なものとそうでないものを定義し、それに対して検証します。 –
存在しないディレクトリは無効なディレクトリですか、いいえ? –
'一般的な'ディレクトリ正規表現を検索することができます。 – Darkwater