$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);
}
错误是:
严格的标准:只有变量应该通过
中的引用传递
当我使用结束函数时会出现此错误
答案 0 :(得分:2)
要使用如下所示的文件扩展名:
$ext = pathinfo($file_name, PATHINFO_EXTENSION);
答案 1 :(得分:1)
警告信息说明了一切。在使用end
例如:
$pieces = explode('.',$file_name);
$file_extn= end($pieces);
〜编辑:
end
函数将参数作为引用。这意味着函数使用内存地址而不是值。这就是为什么我们必须将explode
的回报存储在一个变量中。
您可以在此链接中详细了解通过引用传递:http://php.net/manual/en/language.references.pass.php
以下是end
doc:http://php.net/manual/en/function.end.php