2015-10-14 23 views
3

我有這樣的代碼可以通過獲取文件的擴展名:結束(爆炸)嚴格標準:只有變量應當參照在

$extension = end(explode(".", $_FILES["rfile"]["name"])); 

這是工作在本地主機上很好,但是當我上傳的在線託管,它給我這個錯誤:

Strict Standards: Only variables should be passed by reference in...

+0

您是否在php.net上閱讀了什麼'結束'做了什麼,它的理由是什麼? – Mjh

+0

[嚴格標準:只能通過引用傳遞變量]的可能重複(http://stackoverflow.com/questions/2354609/strict-standards-only-variables-should-be-passed-by-reference) – KyleK

+0

@Mjh我沒有去技術部分,我只是從http://stackoverflow.com/a/5427229/2912339 – Elyor

回答

7

爲什麼不使用pathinfoPHP >= 4.0.3),即:

$ext = pathinfo($_FILES["rfile"]["name"])['extension']; 

Live PHP演示

http://ideone.com/eMpbnL

+1

這可能是重複的作品。謝謝 – Elyor

+0

不客氣,很高興它解決了。 –

6

PHP end需要一個變量作爲參數的參考。 http://php.net/manual/en/function.end.php

因此,啓用了嚴格的標準,你應該把的explode結果到一個變量第一:

$exp = explode(".", $_FILES["rfile"]["name"]) 
$extension = end($exp); 
相關問題