2012-04-26 44 views
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'; 
    } 
    ?> 

回答

1

只需使用strtolowerstrtoupper

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

或者

if(strtoupper($test) == 'PDF') { 
    echo 'pdf'; 
} else { 
    echo 'no pdf'; 
} 
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 
相關問題