国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Rumah php教程 php手冊 PHP快速按行讀取CSV大文件的封裝類分享(也適用于其它超大文本文件)

PHP快速按行讀取CSV大文件的封裝類分享(也適用于其它超大文本文件)

Jun 13, 2016 am 09:39 AM
csv php fail besar

CSV大文件的讀取已經(jīng)在前面講述過了(PHP按行讀取、處理較大CSV文件的代碼實例),但是如何快速完整的操作大文件仍然還存在一些問題。

1、如何快速獲取CSV大文件的總行數(shù)?

辦法一:直接獲取文件內容,使用換行符進行拆分得出總行數(shù),這種辦法對小文件可行,處理大文件時不可行;
辦法二:使用fgets一行一行遍歷,得出總行數(shù),這種辦法比辦法一好一些,但大文件仍有超時的可能;
辦法三:借助SplFileObject類,直接將指針定位到文件末尾,通過SplFileObject::key方法獲取總行數(shù),這種辦法可行,且高效。

具體實現(xiàn)方法:

復制代碼 代碼如下:


$csv_file = 'path/bigfile.csv';
$spl_object = new SplFileObject($csv_file, 'rb');
$spl_object->seek(filesize($csv_file));
echo $spl_object->key();



2、如何快速獲取CSV大文件的數(shù)據(jù)?

仍然使用PHP的SplFileObject類,通過seek方法實現(xiàn)快速定位。

復制代碼 代碼如下:


$csv_file = 'path/bigfile.csv';
$start = 100000;??// 從第100000行開始讀取
$num = 100;????// 讀取100行
$data = array();
$spl_object = new SplFileObject($csv_file, 'rb');
$spl_object->seek($start);
while ($num-- && !$spl_object->eof()) {
?$data[] = $spl_object->fgetcsv();
?$spl_object->next();
}
print_r($data);

3、綜合上面兩點,整理成一個csv文件讀取的類:

復制代碼 代碼如下:


class CsvReader {
?private $csv_file;
?private $spl_object = null;
?private $error;

?public function __construct($csv_file = '') {
??if($csv_file && file_exists($csv_file)) {
???$this->csv_file = $csv_file;
??}
?}

?public function set_csv_file($csv_file) {
??if(!$csv_file || !file_exists($csv_file)) {
???$this->error = 'File invalid';
???return false;
??}
??$this->csv_file = $csv_file;
??$this->spl_object = null;
?}

?public function get_csv_file() {
??return $this->csv_file;
?}

?private function _file_valid($file = '') {
??$file = $file ? $file : $this->csv_file;
??if(!$file || !file_exists($file)) {
???return false;
??}
??if(!is_readable($file)) {
???return false;
??}
??return true;
?}

?private function _open_file() {
??if(!$this->_file_valid()) {
???$this->error = 'File invalid';
???return false;
??}
??if($this->spl_object == null) {
???$this->spl_object = new SplFileObject($this->csv_file, 'rb');
??}
??return true;
?}

?public function get_data($length = 0, $start = 0) {
??if(!$this->_open_file()) {
???return false;
??}
??$length = $length ? $length : $this->get_lines();
??$start = $start - 1;
??$start = ($start ??$data = array();
??$this->spl_object->seek($start);
??while ($length-- && !$this->spl_object->eof()) {
???$data[] = $this->spl_object->fgetcsv();
???$this->spl_object->next();
??}
??return $data;
?}

?public function get_lines() {
??if(!$this->_open_file()) {
???return false;
??}
??$this->spl_object->seek(filesize($this->csv_file));
??return $this->spl_object->key();
?}

?public function get_error() {
??return $this->error;
?}
}


調用方法如下:

復制代碼 代碼如下:


include('CsvReader.class.php');

$csv_file = 'path/bigfile.csv';

$csvreader = new CsvReader($csv_file);

$line_number = $csvreader->get_lines();

$data = $csvreader->get_data(10);

?

echo $line_number, chr(10);

print_r($data);


其實,上述CsvReader類并不只針對CSV大文件,對于其他文本類型的大文件或超大文件同樣可用,前提是將類中fgetcsv方法稍加改動為current即可。

?

?

Kenyataan Laman Web ini
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

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Agnes Tachyon Build Guide | Musume Derby Pretty
2 minggu yang lalu By Jack chen
Oguri Cap Build Guide | Musume Derby Pretty
2 minggu yang lalu By Jack chen
Puncak: Cara Menghidupkan Pemain
4 minggu yang lalu By DDD
Puncak bagaimana untuk emote
3 minggu yang lalu By Jack chen

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Panduan ringkas untuk persediaan php Panduan ringkas untuk persediaan php Jul 18, 2025 am 04:25 AM

Kunci untuk menubuhkan PHP adalah untuk menjelaskan kaedah pemasangan, mengkonfigurasi php.ini, sambungkan ke pelayan web dan membolehkan sambungan yang diperlukan. 1. Pasang PHP: Gunakan Apt untuk Linux, Homebrew untuk Mac, dan XAMPP disyorkan untuk Windows; 2. Konfigurasi php.ini: Laraskan laporan ralat, muat naik sekatan, dan lain -lain dan mulakan semula pelayan; 3. Gunakan pelayan web: Apache menggunakan mod_php, nginx menggunakan php-fpm; 4. Memasang sambungan yang biasa digunakan: seperti mysqli, json, mbstring, dan lain -lain untuk menyokong fungsi penuh.

Belajar PHP: Panduan Pemula Belajar PHP: Panduan Pemula Jul 18, 2025 am 04:54 AM

Tolearnphpeffectively, startbysettingupalocalverenvironmentusingToolsLikexamppandaCodeDitorLikevscode.1) InstallXamppforapa Che, MySql, danPhp.2) UseAcodeeditorForsyntaxSupport.3) testyoursetupwithasimplephpfile.next, learnphpbasicsincludingvariables, ech

Menguasai Komen Blok PHP Menguasai Komen Blok PHP Jul 18, 2025 am 04:35 AM

Phpblockcommentsareusfulfritingmulti-lineexplanations, temporarilydisablingcode, andgeneratingdocumentation.theyshouldnotbenestedorleftunclosed.blockcommentshelpindocumentingfunctionswithphpdoc, whoToolslikePhpePhipeForauseForaSeforausforausforna

Menulis komen php yang berkesan Menulis komen php yang berkesan Jul 18, 2025 am 04:44 AM

Komen tidak boleh cuai kerana mereka ingin menjelaskan sebab-sebab kewujudan kod dan bukannya fungsi, seperti keserasian dengan antara muka lama atau sekatan pihak ketiga, jika tidak, orang yang membaca kod itu hanya boleh bergantung pada meneka. Bidang yang mesti dikomentari termasuk penghakiman bersyarat kompleks, logik pengendalian kesilapan khas, dan sekatan pintasan sementara. Cara yang lebih praktikal untuk menulis komen ialah memilih komen tunggal atau menyekat komen berdasarkan tempat kejadian. Gunakan komen blok dokumen untuk menerangkan parameter dan pulangan nilai pada permulaan fungsi, kelas, dan fail, dan simpan komen dikemas kini. Untuk logik yang kompleks, anda boleh menambah garis kepada yang sebelumnya untuk meringkaskan niat keseluruhan. Pada masa yang sama, jangan gunakan komen untuk menutup kod, tetapi gunakan alat kawalan versi.

Petua untuk menulis komen php Petua untuk menulis komen php Jul 18, 2025 am 04:51 AM

Kunci untuk menulis komen PHP adalah untuk menjelaskan tujuan dan spesifikasi. Komen harus menjelaskan "mengapa" dan bukannya "apa yang dilakukan", mengelakkan redundansi atau terlalu kesederhanaan. 1. Gunakan format bersatu, seperti docblock (/*/) untuk deskripsi kelas dan kaedah untuk meningkatkan keserasian dan keserasian alat; 2. Menekankan sebab -sebab di sebalik logik, seperti mengapa JS melompat perlu dikeluarkan secara manual; 3. Tambahkan gambaran keseluruhan gambaran sebelum kod kompleks, terangkan proses dalam langkah -langkah, dan membantu memahami idea keseluruhan; 4. Gunakan Todo dan Fixme secara rasional untuk menandakan item dan masalah untuk memudahkan penjejakan dan kerjasama berikutnya. Anotasi yang baik dapat mengurangkan kos komunikasi dan meningkatkan kecekapan penyelenggaraan kod.

Meningkatkan kebolehbacaan dengan komen Meningkatkan kebolehbacaan dengan komen Jul 18, 2025 am 04:46 AM

Kunci untuk menulis komen yang baik adalah untuk menjelaskan "mengapa" daripada hanya "apa yang dilakukan" untuk meningkatkan kebolehbacaan kod. 1. Komen harus menjelaskan sebab -sebab logik, seperti pertimbangan di sebalik pemilihan nilai atau pemprosesan; 2. Gunakan anotasi perenggan untuk logik kompleks untuk meringkaskan idea keseluruhan fungsi atau algoritma; 3. Secara kerap mengekalkan komen untuk memastikan konsistensi dengan kod, elakkan mengelirukan, dan padamkan kandungan ketinggalan zaman jika perlu; 4. Secara serentak periksa komen semasa mengkaji semula kod, dan merekodkan logik awam melalui dokumen untuk mengurangkan beban komen kod.

Tutorial pemasangan php cepat Tutorial pemasangan php cepat Jul 18, 2025 am 04:52 AM

Toinstallphpquickly, usexampponwindowsorhomeBrewonmacos.1.onwindows, downloadandInstallxampp, selectcomponents, startapache, andplaceFilesinhtdocs.2.alternative, secara manualstallphpfromphp.netandsheBerver.3

Mengulas kod dalam php Mengulas kod dalam php Jul 18, 2025 am 04:57 AM

Terdapat tiga kaedah umum untuk kod komen PHP: 1. Use // atau # untuk menyekat satu baris kod, dan disyorkan untuk menggunakan //; 2. Gunakan /.../ untuk membungkus blok kod dengan pelbagai baris, yang tidak boleh bersarang tetapi boleh diseberang; 3. Komen -komen kemahiran gabungan seperti menggunakan / jika () {} / untuk mengawal blok logik, atau untuk meningkatkan kecekapan dengan kunci pintasan editor, anda harus memberi perhatian kepada simbol penutupan dan mengelakkan bersarang apabila menggunakannya.

See all articles