Dalam pembangunan PHP, anda mungkin menghadapi beberapa ralat yang tidak dapat dijelaskan Salah satu ralat yang lebih menyusahkan ialah "input melebihi penghujung fail", yang biasanya berlaku apabila membaca fail, memuat naik fail dan menyimpan fail.
Punca ralat ini biasanya disebabkan oleh saiz fail atau saiz fail yang dimuat naik melebihi had yang ditetapkan dalam PHP.INI. Terdapat beberapa sekatan yang berkaitan dengan muat naik fail dalam PHP.INI Sekatan ini boleh menghalang sesetengah pengguna berniat jahat daripada memuat naik fail besar dan melindungi keselamatan PHP.
Pada masa yang sama, ralat ini kadangkala disebabkan oleh beberapa ralat atau pepijat dalam enjin penghuraian PHP.
Apakah yang perlu saya lakukan jika ralat "input melebihi penghujung fail" berlaku? Mari kita lihat beberapa penyelesaian.
Penyelesaian pertama ialah mengubah suai sekatan yang berkaitan dalam PHP.INI, yang membolehkan PHP menerima fail yang lebih besar. Lihat kaedah pengubahsuaian di bawah:
upload_max_filesize = 2M post_max_size = 8M max_execution_time = 30
upload_max_filesize = 100M post_max_size = 100M max_execution_time = 300
Kaedah kedua ialah menggunakan pustaka pihak ketiga untuk membaca fail besar. Contohnya, apabila menggunakan fungsi fgetcsv untuk membaca fail CSV yang besar, jika fail terlalu besar, ralat "input melebihi hujung fail" mungkin berlaku. Pada masa ini, anda boleh menggunakan perpustakaan seperti Spout untuk membaca fail besar contoh kod:
require_once('spout/src/Spout/Autoloader/autoload.php'); use Box\Spout\Reader\Common\Creator\ReaderEntityFactory; $reader = ReaderEntityFactory::createXLSXReader(); $reader->open('large_file.xlsx'); foreach ($reader->getSheetIterator() as $sheet) { foreach ($sheet->getRowIterator() as $row) { $cells = $row->getCells(); foreach ($cells as $cell) { //do something } } } $reader->close();
Kaedah ini boleh mengelakkan kaedah bacaan lalai PHP menjadi terlalu ganas, dan ia lebih cekap dalam membaca fail besar.
Akhir sekali, apabila menghadapi masalah ini, kita boleh mula-mula menulis laluan fail dan nombor baris gesaan ralat, dan kemudian semak fail Semak kod masuk untuk melihat sama ada terdapat ralat sintaks atau ralat logik yang menyebabkan ralat dalam membaca fail. Pada masa yang sama, kami juga boleh menyemak sama ada terdapat pepijat dalam enjin parsing PHP yang menyebabkan ralat ini. Dalam kes ini, kita boleh pergi ke laman web rasmi PHP untuk mendapatkan bantuan atau menunggu penyelesaian.
Ringkasan
Ralat "Input melebihi akhir fail" sering berlaku dalam pembangunan PHP, biasanya disebabkan saiz fail atau saiz fail yang dimuat naik melebihi had dalam PHP.INI. Untuk mengelakkan ralat ini, kami boleh mengubah suai sekatan berkaitan muat naik fail dalam fail PHP.INI, menggunakan pustaka pihak ketiga untuk membaca fail besar atau menyemak sama ada terdapat ralat sintaks atau logik dalam kod yang menyebabkan masalah. Saya harap artikel ini dapat membantu pembangun menyelesaikan masalah sedemikian.
Atas ialah kandungan terperinci input php melebihi akhir fail. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!