Rumah  >  Artikel  >  pembangunan bahagian belakang  >  input php melebihi akhir fail

input php melebihi akhir fail

王林
王林asal
2023-05-06 20:37:051004semak imbas

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.

  1. Ubah suai sekatan dalam PHP.INI

Penyelesaian pertama ialah mengubah suai sekatan yang berkaitan dalam PHP.INI, yang membolehkan PHP menerima fail yang lebih besar. Lihat kaedah pengubahsuaian di bawah:

  • Buka fail PHP.INI.
  • Cari parameter berikut:
upload_max_filesize = 2M 
post_max_size = 8M 
max_execution_time = 30 
  • Ubah suai nilainya kepada nilai yang lebih besar. Contohnya:
upload_max_filesize = 100M 
post_max_size = 100M 
max_execution_time = 300
  • Simpan fail PHP.INI yang diubah suai dan mulakan semula Apache.
  1. Gunakan pustaka pihak ketiga untuk membaca fail besar

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.

  1. Periksa enjin penghuraian PHP

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Apakah maksud kolon dalam php?Artikel seterusnya:Apakah maksud kolon dalam php?