麻烦回应我阵列的结尾

时间:2013-06-28 18:33:39

标签: php

我正在尝试抓取上传文件的扩展名并将其回显到我的页面上。

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

echo $file_extn;

我收到的错误是

  

严格标准:在第67行的C:\ xampp \ htdocs \ reptile_forum + help \ includes \ widgets \ logged_in.php中,只能通过引用传递变量。

第67行是"$file_ext ="

我没有正确使用end()吗?还有什么我可以用来得到相同的结果吗?

注意:当我删除end()并使用print_r()时,数组会完美显示,就好像end()没有注册数组或类似内容。

2 个答案:

答案 0 :(得分:2)

主要问题是你完全以错误的方式解决这个问题。当手术刀会这样做时,不要使用一堆火箭筒:

$file_extn = pathinfo($file_name, PATHINFO_EXTENSION);

没有阵列,没有爆炸。只是一个很简单的代码,显然是关于你想要做的事情。

答案 1 :(得分:1)

试试这个:

$file_name = $_FILES['profile_pic']['name'];
$file_extn = pathinfo($file_name, PATHINFO_EXTENSION);
$file_temp = $_FILES['profile_pic']['tmp_name'];

echo $file_extn;

问题在于您试图将其爆炸并将结果发送到单个操作中的结束函数。它适用于大多数方法,但不适用于此方法,因为它需要将变量作为参考传递。

我将其更改为使用pathinfo,这是查找文件扩展名的更好方法。你可以在这里阅读:

http://php.net/manual/en/function.pathinfo.php