2016-04-26 22 views
0

私は7つの入力ファイルを持っており、PHPで$_FILESを使用して各値を取得します。ここではコードです:

$fig1    = $_FILES['files1']['name']; 
$fig2    = $_FILES['files2']['name']; 
$fig3    = $_FILES['files3']['name']; 
$fig4    = $_FILES['files4']['name']; 
$fig5    = $_FILES['files5']['name']; 
$fig6    = $_FILES['files6']['name']; 
$fig7    = $_FILES['files7']['name']; 

しかし、私はそれが効率的な方法ではないと思います。

$value_fig1   = explode('.', $fig1); 
$file_ext_fig  = strtolower(array_pop($value_fig1)); 

と私はまだ6より多くの変数があります。

はまた、私はここでは、ファイルの拡張子を取得するために名前を爆発します。

だから、もっと効率的な方法がありますか? $file_ext_fig1$file_name_fig1$file_ext_fig2$file_name_fig2

$i = 0; 
foreach($_FILES as $file) 
{ 
    $tmp = explode('.', $file['name']); 

    ${'file_ext_fig'.++$i} = strtolower(array_pop($tmp)); 
    ${'file_name_fig'.$i} = implode('.', $tmp); 
} 

が今、あなたのようなVARSを持っている:

+1

forループについて聞いた – Ghost

+0

そうだと思います。しかし、どうしたらいいですか? –

答えて

0

あなたはこのような何かを行うことができます拡張子の配列を取得します等...

ちなみに、私は、この方法を使ってファイルの拡張子を決めるべきではないことを伝えなければなりません。ここで言ったように:https://stackoverflow.com/a/10368236/3799829あなたはこれがあなたを摂動されている場合、あなたのような何かを行うことができ、私は++$iを使用していていることがわかりますところで、次の

$i = 0; 
foreach($_FILES as $file) 
{ 
    ${'file_ext_fig'.++$i} = pathinfo($file['name'], PATHINFO_EXTENSION); 
    ${'file_name_fig'.$i} = pathinfo($file['name'], PATHINFO_FILENAME); 
} 

を実行する必要があります。

$i = 0; 
foreach($_FILES as $file) 
{ 
    $i++; 
    ${'file_ext_fig'.$i} = pathinfo($file['name'], PATHINFO_EXTENSION); 
    ${'file_name_fig'.$i} = pathinfo($file['name'], PATHINFO_FILENAME); 
} 

いましたあなたが使用するファイルのフィールドをフィルタリングする場合とまったく同じ

、のは、この

// the fields you want to process 
$filter = array(
    'fig1_field_name', 
    'fig2_field_name', 
    'fig3_field_name', 
    'fig4_field_name', 
    'fig5_field_name', 
); 

$i = 0; 
foreach($_FILES as $key => $file) 
{ 
    if(!in_array($key, $filter)) continue; 

    $i++; 
    ${'file_ext_fig'.$i} = pathinfo($file['name'], PATHINFO_EXTENSION); 
    ${'file_name_fig'.$i} = pathinfo($file['name'], PATHINFO_FILENAME); 
} 
ような何かをしましょう
+0

Thankyou @ Bob0t実際には、私はこのプロセスに含まれたくない同じページに別のファイル入力があります。ですから、入力フォームの名前で$ _FILESを定義できますか? –

+0

もちろん、投稿を編集しています – Bobot

0

使用この

$ext = array(); 
foreach($_FILES as $key=>$val) 
{ 
$value_fig  = explode('.', $_FILES[$key]['name']); 
$ext [] = strtolower(array_pop($value_fig)); 
} 

$ extが

関連する問題