为什么我们使用$ extension = end($ temp);在这段代码?这究竟是做什么的
<?php
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 20000)
&& in_array($extension, $allowedExts))
答案 0 :(得分:2)
此示例使用end()函数检索$ temp数组的最后一个元素。最后一个元素包含文件名的扩展名。 http://php.net/manual/en/function.end.php
答案 1 :(得分:1)
正如Märis告诉你它获取数组的最后一个元素,在文件名的情况下是文件扩展名(或将是最多的时间)
在最后一行检查扩展名是否为$ allowedExts。
之一但它是冗余检查,文件类型的检查是因为。
答案 2 :(得分:1)
end()
将数组的内部指针前进到最后一个元素,并返回其值。
它不会返回值。它需要一个&reference
参数,它也会移动内部数组指针。 next()
之后没有end()
。只有current()
或reset()
。