ホームページ  >  記事  >  バックエンド開発  >  PHP配列からファイル名を1つだけ取得します

PHP配列からファイル名を1つだけ取得します

王林
王林オリジナル
2023-05-11 10:45:37429ブラウズ

PHP プログラミングでは、配列は関連データのセットを格納するために使用される、非常に一般的に使用されるデータ型です。ファイルのアップロードを処理するとき、配列を使用してアップロードされたファイルに関する情報を保存できます。アップロードされる一般的なファイル情報には、ファイル名、ファイルの種類、ファイル サイズなどが含まれますが、ファイル名は非常に重要な要素です。

PHP 配列では、配列添字を使用して配列内の要素にアクセスできます。例:

$files = $_FILES['file']; // $_FILES是PHP的预定义变量之一,用于处理HTTP上传文件
$fileName = $files['name']; // 获取上传文件的文件名

上記のコードでは、最初に $_FILES['file'] を通じてファイルを取得します。オブジェクトをアップロードし、$file['name'] を使用してアップロードされたファイルのファイル名を取得します。ただし、複数のファイルをアップロードする場合、$_FILES'file' は、以下に示すように、アップロードされたすべてのファイルのファイル名を含む配列になります。

Array
(
    [0] => file1.txt
    [1] => file2.txt
    [2] => file3.txt
)

ファイルの 1 つだけを取得する必要がある場合 file名前、どうすればいいですか?以下の 2 つの方法があります。

方法 1: 配列の添字を使用してアクセスする

配列の添字を指定することで、指定したファイルのファイル名を取得できます。たとえば、2 番目にアップロードされたファイルのファイル名を取得したい場合は、次のコードを使用できます:

$fileName = $_FILES['file']['name'][1];

上記のコードでは、$_FILES'file' は配列であり、[1] は次のことを意味します。配列の下位部分を取得します。 1 とマークされた要素は、2 番目にアップロードされたファイルのファイル名です。

ただし、この方法には一定の制限があり、取得するファイル名の添字を知っている必要があります。配列内で取得したいファイル名の添え字がわからない場合はどうすればよいでしょうか?現時点では、方法 2 を使用する必要があります。つまり、ループを使用して配列を走査します。

方法 2: ループ トラバーサルを使用する

配列をループすることで、配列内のすべての要素に 1 つずつアクセスし、必要なファイル名をフィルターで除外する判断を下すことができます。たとえば、次のコードは foreach ループを使用して $_FILES'file' 配列を走査し、すべてのファイル名を出力します。

foreach ($_FILES['file']['name'] as $fileName) {
    echo $fileName . '<br>';
}

上記のコードでは、foreach ループは配列 $_FILES['file をループします。 ']['name'] 各要素、つまりアップロードされた各ファイルのファイル名は、ループ本体内のコード ブロックを順番に実行します。ループ本体内の $fileName を判断して、それが必要なファイル名であるかどうかを判断できます。

もちろん、配列内の最初のファイル名のみを取得する必要がある場合は、次の簡単なコードを使用できます:

$fileName = reset($_FILES['file']['name']);

上記のコードでは、reset() 関数が使用されています。ポインタを配列要素の最初の要素にポイントし、最初にアップロードされたファイルのファイル名である要素の値を返します。

つまり、PHP 配列にアップロードされたファイルのファイル名を取得するには、配列の添字を使用して配列にアクセスするか、配列をループすることができます。必要なファイル名を正確に取得するには、実際の状況に応じて適切な方法を選択する必要があります。

以上がPHP配列からファイル名を1つだけ取得しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。