-4
我不問如何驗證上傳文件轉換的文件類型的列表,在正則表達式
我需要設置一個PHP的正則表達式是這樣的:從
'/\.(pdf|doc|docx)$/i'
像這樣的列表:
.pdf,.doc,.docx
目標是在上載表單中設置接受文件類型。
我想:
$filetype_arr = explode("," , ".pdf,.doc,.docx");
$filetype_str = '/\.(';
for ($i=0; $i < count($filetype_arr) ; $i++) {
$filetype_ext = explode("." , $filetype_arr[$i]);
$pipe = "";
if ($i < count($filetype_arr) - 1) $pipe = "|";
$filetype_str .= $filetype_ext[1] . $pipe;
}
$filetype_str .= ')$/i';
// $filetype_str = '/\.(pdf|doc|docx)$/i'
'accept_file_types' => $filetype_str,
而且沒有工作,但:
'accept_file_types' => '/\.(pdf|doc|docx)$/i',
作品。
編輯: 正如標題所說:「我需要一個列表轉換的正則表達式在PHP」 ......我不問如何驗證上傳文件,它不是複製。 這個正則表達式將被插入一個上傳文件的庫中,我只需要從動態列表中設置有效的擴展名。
'accept_file_types' => '/\.(' . $myDynamicList . ')$/i',
簡化:
不要工作:
$validFile = '/\.(' . str_replace(',.', '|', ".pdf,.doc,.docx") . ')$/i';
'accept_file_types' => $validFile,
它的工作原理:
'accept_file_types' => '/\.(pdf|doc|docx)$/i',
非常感謝
你有一個類似''pdf,.doc,.docx「'的字符串,並且你想從這個字符串構造一個正則表達式,對吧? –
@TomaszKowalczyk請閱讀編輯,謝謝。 – ale
@RuslanOsmanov是的! – ale