日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
PHP中如何讀取CSV內(nèi)容并存入一個(gè)數(shù)組中

如何使用php把CSV讀成一個(gè)數(shù)組?下面本篇文章帶大家了解一下使用PHP讀取CSV內(nèi)容,并將其轉(zhuǎn)換成數(shù)組的方法,希望對(duì)大家有幫助。

專(zhuān)注于為中小企業(yè)提供成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、外貿(mào)網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)云巖免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了近千家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

在這篇文章中,我將向你展示如何使用PHP的內(nèi)置函數(shù)來(lái)讀取和打印一個(gè)CSV文件的內(nèi)容,并將其轉(zhuǎn)換成一個(gè)數(shù)組。我們將使用fopen()fgetcsv() 讀取CSV文件的內(nèi)容,然后使用array_map()str_getcsv() 函數(shù)將其轉(zhuǎn)換成數(shù)組。

以逗號(hào)分隔的數(shù)值(CSV)格式存儲(chǔ)數(shù)據(jù)文件并不是什么新鮮事。事實(shí)上,由于其簡(jiǎn)單性,它是最常見(jiàn)的數(shù)據(jù)存儲(chǔ)方式之一--CSV文件易于讀寫(xiě),并且可以在基本的文本編輯器中打開(kāi)。這種類(lèi)型的文件以純文本的形式存儲(chǔ)表格數(shù)據(jù)。

這樣一個(gè)文件的例子是這樣的。

Elias,40,nurse
Rehema,15,programmer
Beatrice,23,doctor

這個(gè)數(shù)據(jù)代表了三個(gè)人的信息,有對(duì)應(yīng)于他們名字、年齡和工作的列。雖然這是一種簡(jiǎn)單的數(shù)據(jù)格式,但它的閱讀和消費(fèi)是很棘手的。

因此,在這篇文章中,我將教你如何使用PHP的原生函數(shù)(如fopen() )打開(kāi)CSV文件,如何使用fgetcsv() 方法讀取這個(gè)文件的內(nèi)容,最后是如何使用array_map() 函數(shù)將這個(gè)CSV文件轉(zhuǎn)換成一個(gè)數(shù)組。

當(dāng)然,我們可以使用一些第三方軟件包來(lái)實(shí)現(xiàn)這些,但PHP內(nèi)置的本地函數(shù)非常好用。

前提條件

要繼續(xù)學(xué)習(xí)這篇文章,你需要以下條件。

  • 在你的機(jī)器上安裝了 PHP 5.6 或更高的版本
  • 一個(gè)PHP的開(kāi)發(fā)環(huán)境--XAMPP或WampServer都很好用
  • 對(duì)PHP概念的一些基本了解

我們開(kāi)始吧!

將CSV文件顯示為一個(gè)表

在文章的這一部分,我們將讀取一個(gè)簡(jiǎn)單的CSV文件,其中包含幾個(gè)由逗號(hào)分隔的詞。開(kāi)始時(shí),我們將使用上面的簡(jiǎn)單文件,以后我們可以繼續(xù)使用一個(gè)隨機(jī)的大文件。當(dāng)然,你可以使用Microsoft Excel或文本編輯器創(chuàng)建自己的文件,并以CSV為擴(kuò)展名保存。

要讀取該文件,我們首先要在其保存的文件夾或位置找到它。為了方便訪(fǎng)問(wèn),你可能想把它保存在你的程序文件的同一個(gè)文件夾里。然后我們可以使用fopen() 函數(shù)來(lái)讀取該文件。

之后,fgetcsv() 函數(shù)從打開(kāi)文件的解析行中檢查CSV字段。這個(gè)函數(shù)需要三個(gè)參數(shù):從fopen() 返回的文件句柄,要讀取的行的最大長(zhǎng)度,以及特殊的分隔符--我們稱(chēng)之為 "分隔符"。這可以是一個(gè)逗號(hào)、一個(gè)分號(hào)或任何其他分隔符。

現(xiàn)在讓我們來(lái)實(shí)際操作一下。

在可以用WAMP或XAMPP提供服務(wù)的地方創(chuàng)建一個(gè)名為csvtable.php的文件,并復(fù)制以下代碼。

\n";
    while(($data = fgetcsv($file_to_read, 100, ',')) !== FALSE){
        echo "";
        for($i = 0; $i < count($data); $i++) {
            echo "".$data[$i]."";
        }
        echo "\n";
    }
    echo "\n";

    fclose($file_to_read);
}

?>

在這個(gè)文件中,我們首先打開(kāi)data.csv文件,它應(yīng)該包含一些逗號(hào)分隔的數(shù)據(jù)。fopen 將在與csvtable.php相同的文件夾中尋找這個(gè)文件。'r' 參數(shù)告訴fopen ,以只讀方式打開(kāi)該文件。

如果文件被成功打開(kāi),fopen 將返回一個(gè)文件句柄,可用于其他文件的讀取操作。否則,它將返回FALSE 。因此,在繼續(xù)讀取文件之前,我們檢查文件句柄是否為FALSE 。

然后,fgetcsv() 文件從打開(kāi)的文件中獲取CSV字段,一次一行。我們告訴fgetcsv ,每行最多讀取100個(gè)字符,并使用逗號(hào)分隔符作為分隔符。然后,在文件中找到的字被循環(huán)瀏覽,并打印到一個(gè)HTML表格中。

最后一個(gè)函數(shù)是fclose() ,它關(guān)閉了打開(kāi)的文件。這將釋放打開(kāi)的文件所使用的內(nèi)存,并允許其他進(jìn)程訪(fǎng)問(wèn)該文件。

通過(guò)WAMP或XAMPP localhost服務(wù)器打開(kāi)csvtable**.php**,或從命令行運(yùn)行php read.php ,可以看到以下輸出。

我們需要實(shí)現(xiàn)的第一部分已經(jīng)完成了!

現(xiàn)在,我們將跳到將原始CSV字段轉(zhuǎn)換為數(shù)組。

將原始CSV文件轉(zhuǎn)換為數(shù)組

現(xiàn)在,有不止一種方法來(lái)產(chǎn)生數(shù)組。我們可以使用fgetcsv() 函數(shù)將CSV文件的內(nèi)容自動(dòng)轉(zhuǎn)換為數(shù)組,或者我們可以使用array_map 。

使用fgetcsv() ,將CSV文件轉(zhuǎn)換成數(shù)組

這與上面的例子類(lèi)似,我們使用fgetcsv() ,將一個(gè)CSV文件渲染成一個(gè)HTML表格。讓我們來(lái)看看這個(gè)動(dòng)作。創(chuàng)建一個(gè)具有以下內(nèi)容的PHP文件。

';
print_r($csv);
echo '
'; ?>

在上面的代碼中,我們創(chuàng)建了一個(gè)函數(shù)來(lái)讀取一個(gè)CSV文件并將其轉(zhuǎn)換為數(shù)組。我們傳入一個(gè)參數(shù),包含CSV文件的名稱(chēng)和路徑。

然后,我們使用feof() 函數(shù)來(lái)檢查是否已經(jīng)到達(dá)文件的末端。在到達(dá)之前,我們需要使用fgetcsv() 函數(shù)解析CSV字段,就像我們?cè)谏厦娴睦又凶龅哪菢印?/p>

使用fgetcsv() 函數(shù)將CSV文件中被解析的CSV字段轉(zhuǎn)換為數(shù)組,并將其逐一追加到$lines[] 變量中。

最后,別忘了在退出函數(shù)之前,使用fclose() 函數(shù)關(guān)閉已打開(kāi)的文件。

然后,我們調(diào)用readDocument 函數(shù),該函數(shù)將CSV文件作為參數(shù)傳遞,接下來(lái),CSV文件的內(nèi)容將顯示如下。

使用array_map() 讀取一個(gè)CSV文件

另外,你也可以使用array_map() 函數(shù)將一個(gè)CSV文件讀入一個(gè)數(shù)組。要做到這一點(diǎn),你要使用str_getcsv 作為回調(diào)函數(shù)。這是一個(gè)內(nèi)置的PHP函數(shù),用來(lái)解析一個(gè)CSV字符串到一個(gè)數(shù)組中。

回調(diào)函數(shù)是一些可執(zhí)行的代碼,它作為一個(gè)參數(shù)傳遞給另一段代碼。這個(gè)參數(shù)預(yù)計(jì)在以后會(huì)被傳遞給它的代碼回調(diào)。

下面是我們?nèi)绾问褂?code>array_map 和str_getcsv ,將我們的CSV數(shù)據(jù)映射成一個(gè)數(shù)組。

';
print_r($csv);
echo '
'; ?>

上面的代碼使用file() 方法將CSV文件讀成一個(gè)行數(shù)組。然后,通過(guò)數(shù)組映射,它在每一行上調(diào)用str_getcsv() ,并將整個(gè)文件的數(shù)據(jù)存儲(chǔ)在$csvstr_getcsv() 函數(shù)將每一行的CSV字段內(nèi)容解析為一個(gè)數(shù)組。

上述代碼片斷的輸出將與上述相同。

注意到在直接使用file()array_map() 函數(shù)時(shí),需要的代碼少了很多嗎?

總結(jié)

在這篇文章中,你學(xué)到了如何在PHP中處理一個(gè)CSV文件,通過(guò)使用PHP本地函數(shù)如fopen()fgetcsv() 讀取和顯示其內(nèi)容,并將CSV字段轉(zhuǎn)換為數(shù)組。我向你展示了兩種方法。

現(xiàn)在,試著自己做吧。編碼愉快!


本文名稱(chēng):PHP中如何讀取CSV內(nèi)容并存入一個(gè)數(shù)組中
本文URL:http://m.5511xx.com/article/dpecdjp.html