0

私のフォームには、ファイルの名前を変更するための入力があります。アップロードするファイルを選択すると、それが.pdfファイルのみであることを確認するためにチェックされます。入力をチェックして、新しい名前にファイル拡張子が追加されていないことを確認しようとしています。'pdf'のバリエーションをチェックしようとしています。これが私が持っているものですが、これを行うためのより良い方法があります。どんな助けでも歓迎します、ありがとう

  <?php
    function get_file_extension($pdf)
    {
     return substr(strrchr($pdf,'.'),0);
    }

    $pdf = "test.pdf";

    $test = strstr($pdf, '.');
    $pdf_ext = array('.pdf','.PDF','.Pdf','.PDf','.pdF','.pDf','.PdF','.PdF');
    $test =  get_file_extension($pdf);
    if($test == in_array($test,$pdf_ext)) {
       echo 'you do not a .pdf';
    } else {
       echo 'name ok';
    }
   ?>
4

2 に答える 2

1

ユーザーがファイル拡張子が.pdfの名前を入力できないようにする代わりに、入力したかどうかを確認して、削除することができます。

<?php

function get_filename_without_pdf($file){
    preg_match('/(.+?)(\.pdf)?$/i', $file, $matches);
    return $matches[1];
}

echo get_filename_without_pdf('test1.pdf') . PHP_EOL;
echo get_filename_without_pdf('test2.PdF') . PHP_EOL;
echo get_filename_without_pdf('test3.txt') . PHP_EOL;
echo get_filename_without_pdf('test4') . PHP_EOL;

出力

test1
test2
test3.txt
test4
于 2012-04-26T18:42:56.720 に答える
1

strtolowerまたはを使用するだけstrtoupperです:

if(strtolower($test) == 'pdf') {
   echo 'pdf';
} else {
   echo 'no pdf';
}

または

if(strtoupper($test) == 'PDF') {
   echo 'pdf';
} else {
   echo 'no pdf';
}
于 2012-04-26T18:26:29.527 に答える