ファイル拡張子を確認するための PHP 正規表現方法

WBOY
リリース: 2023-06-24 16:50:02
オリジナル
1730 人が閲覧しました

Web 開発のプロセスでは、アップロードされるファイルに形式制限を課す必要がある場合があります。つまり、検証に合格するには、指定された種類のファイルのみをアップロードできます。現時点では、PHP 正規表現を使用してファイル拡張子を確認できます。

PHP 正規表現は、文字列の照合と検索を行うための強力なツールです。テキストの一部が特定のルールに従って要件を満たしているかどうかを迅速かつ正確に判断し、さらに処理するのに役立ちます。次に、この記事では、ファイル拡張子を検証するために PHP 正規表現を使用する方法を説明します。

ステップ 1: アップロードされたファイルの拡張子を取得する

アップロードされたファイルの拡張子を確認するには、まずアップロードされたファイルの完全なファイル名を取得する必要があります。 PHP では、$_FILES 変数を通じてファイル情報を取得できます。この変数は 2 次元配列であり、アップロードされたファイルの名前、タイプ、サイズ、一時的な保存場所などの情報を取得できます。

たとえば、$_FILES'file' は、アップロードされたファイルの元のファイル名です。

次に、ファイル拡張子をファイル名から分離する必要があります。ファイル情報(ファイル名、拡張子、パスなど)は、PHP 組み込み関数 pathinfo() を使用して取得できます。この関数は、ファイル パス、ファイル名、ファイル拡張子などの情報を含む連想配列を返します。

たとえば、 $ext = pathinfo($_FILES'file', PATHINFO_EXTENSION); とすると、アップロードされたファイルの拡張子を取得できます。

ステップ 2: 正規表現を使用して、アップロードされたファイルの拡張子を確認する

ファイル拡張子を取得した後、それを検証して、そのファイル拡張子が許可されるファイル タイプであるかどうかを確認する必要があります。 PHP 正規表現を使用して検証する方法は次のとおりです:

$allowExt = '/^(jpg|jpeg|png|gif)$/'; // 允许上传的文件类型

if (preg_match($allowExt, $ext)) {
   // 扩展名合法,文件类型符合要求
} else {
   // 扩展名不合法,文件类型不符合要求
}
ログイン後にコピー

このうち、preg_match() 関数を使用して、アップロードされたファイルの拡張子を照合し、照合に成功した場合は、そのファイル拡張子が許可されていることを意味します。

上記の正規表現 '/^(jpg|jpeg|png|gif)$/' は、jpg、jpeg、png、gif で終わるすべての文字列に一致します。いずれかの形式に一致する場合、法的なファイル形式になります。 。

正規表現中の「^」は文字列の開始位置を表し、「$」は文字列の終了位置を表すことに注意してください。したがって、上記の正規表現では、ファイル拡張子は jpg、jpeg、png、gif の 4 種類のみに制限されます。

ステップ 3: 完全なファイル アップロード検証コード

上記の 2 つのステップを組み合わせると、完全なファイル アップロード検証コードは次のようになります:

ログイン後にコピー

アップロード時 ファイル拡張子が一致するとき要件を満たしている場合は、「ファイルのアップロードに成功しました」と出力され、アップロード操作が実行されますが、要件を満たしていない場合は、「ファイルのアップロードに失敗しました。ファイルの種類は許可されていません」が出力されます。

概要

上記は、PHP 正規表現を使用してファイル拡張子を確認する方法です。アップロードされたファイルの拡張子を取得し、正規表現を使用して照合することにより、アップロードされたファイルの種類を効果的に制限でき、Web 開発にとってより安全で効果的な保証が提供されます。

以上がファイル拡張子を確認するための PHP 正規表現方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!