我有這樣的代碼可以通過獲取文件的擴展名:結束(爆炸)嚴格標準:只有變量應當參照在
$extension = end(explode(".", $_FILES["rfile"]["name"]));
這是工作在本地主機上很好,但是當我上傳的在線託管,它給我這個錯誤:
Strict Standards: Only variables should be passed by reference in...
我有這樣的代碼可以通過獲取文件的擴展名:結束(爆炸)嚴格標準:只有變量應當參照在
$extension = end(explode(".", $_FILES["rfile"]["name"]));
這是工作在本地主機上很好,但是當我上傳的在線託管,它給我這個錯誤:
Strict Standards: Only variables should be passed by reference in...
本地主機是一個老版本的PHP或者未配置爲顯示嚴格的標準誤差。
現在在PHP中,你應該做的:
$explode = explode(".", $_FILES["rfile"]["name"]);
$extension = end($explode);
看到文檔的例子:http://php.net/manual/en/function.end.php#refsect1-function.end-examples
PHP end
需要一個變量作爲參數的參考。 http://php.net/manual/en/function.end.php
因此,啓用了嚴格的標準,你應該把的explode
結果到一個變量第一:
$exp = explode(".", $_FILES["rfile"]["name"])
$extension = end($exp);
您是否在php.net上閱讀了什麼'結束'做了什麼,它的理由是什麼? – Mjh
[嚴格標準:只能通過引用傳遞變量]的可能重複(http://stackoverflow.com/questions/2354609/strict-standards-only-variables-should-be-passed-by-reference) – KyleK
@Mjh我沒有去技術部分,我只是從http://stackoverflow.com/a/5427229/2912339 – Elyor