2016-04-08 12 views
0
$allowed=array('jpg','jpqg','gif','png','JPG','JPEG','GIF','PNG'); 

$file_name=$_FILES['profile']['name']; 
$file_extn= end(explode('.',$file_name)); 
$file_temp=$_FILES['profile']['tmp_name']; 

if(in_array($file_extn,$allowed) == true) { 
    //change_profile_image($_SESSION['id'],$file_temp); 
} 
else { 
    echo'incorrect file type .Allowed:'; 
    echo implode(', ',$allowed); 
} 

私はエラーを取得し、最後の言葉を取るとend()関数を使用したい:iに誤差がある

厳しい基準:変数のみが

に参照渡しする必要があります私は最後の関数を使用すると、以下のようなファイル拡張子の使用を取得するには、このエラー

+0

私は – CarlosCarucce

答えて

2

を得る:

$ext = pathinfo($file_name, PATHINFO_EXTENSION); 
+0

OK感謝aswellファイルのMIMEタイプをチェックするだろう、私はそれを使用します、 それはさらにいいです – joee

1

警告メッセージにすべてが記載されています。あなたは、保存する必要があり、たとえばend

を使用する前に、変数に結果を爆発:

$pieces = explode('.',$file_name); 
$file_extn= end($pieces); 

〜編集:

end機能が参照として引数を取ります。これは、関数が値の代わりにメモリアドレスを使用することを意味します。その理由は、explodeからの戻り値を変数に格納する必要がある理由です。

あなたは、このリンクで参照渡しについての詳細を読むことができます:http://php.net/manual/en/language.references.pass.php

そして、ここではendドキュメントです:http://php.net/manual/en/function.end.php