您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“php怎么把文件全部數(shù)據(jù)存入一個(gè)字符串中”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“php怎么把文件全部數(shù)據(jù)存入一個(gè)字符串中”吧!
今天給大家介紹的方法,不僅可以一次性讀取整個(gè)文件,還可以將讀取的文件內(nèi)容存入一個(gè)字符串中,是不是很神奇。這就要用到一個(gè)PHP內(nèi)置函數(shù)file_get_contents(),今天就來了解一下這個(gè)函數(shù)。
還是以“test.txt”文件為例,該文件里面的內(nèi)容為:
我們先來看看如何使用file_get_contents()函數(shù)讀取文件,將內(nèi)容存入字符串中。
<?php header("Content-Type: text/html;charset=utf-8"); //設(shè)置字符編碼 $file = 'test.txt'; $filestr = file_get_contents($file); if($filestr){ echo $filestr; }else{ echo '讀取失??!'; } ?>
輸出結(jié)果:
可以看出,不需要打開或關(guān)閉文件操作,直接使用“file_get_contents($file)
”語句就可以一次性讀取整個(gè)文件了,這一點(diǎn)和之前介紹的readfile()函數(shù)很像,但它們還是有所不同的:file_get_contents()函數(shù)會將讀取的數(shù)據(jù)存入一個(gè)字符串中,而readfile()函數(shù)是存入輸出緩沖中。
因此readfile()函數(shù)不需要echo、print等輸出語句就可以輸出,直接“readfile($file);
”就行;而file_get_contents()函數(shù)需要借助輸出語句才能將讀取的內(nèi)容進(jìn)行輸出,“echo file_get_contents($file)
”。
下面我們來具體了解一下file_get_contents()函數(shù)的用法:
file_get_contents($filename,$include_path,$context,$offset,$max_length)
函數(shù)只有一個(gè)必需參數(shù)$filename
(要讀取的文件,可以是文件名,也可是文件路徑),但有4個(gè)可省略的參數(shù):$include_path
(默認(rèn)值FALSE)、$context
(文件句柄環(huán)境,值可為NULL)、$offset
(開始讀取的位置)、$max_length(讀取字節(jié)數(shù))。
其中,不能對遠(yuǎn)程文件使用$offset
參數(shù);如果省略$max_length
參數(shù),則會和上面示例那樣,默認(rèn)讀取文件的全部內(nèi)容。
下面我們來看看$offset
和$max_length
參數(shù)。
<?php header("Content-Type: text/html;charset=utf-8"); //設(shè)置字符編碼 $file = 'test.txt'; $filestr1 = file_get_contents($file,FALSE,NULL,3); echo $filestr1; $filestr2 = file_get_contents($file,FALSE,NULL,0,15); echo "<br>".$filestr2; ?>
輸出結(jié)果:
可以看出,$max_length
參數(shù)設(shè)置為15,卻只獲取了7個(gè)字符,這是為什么呢?
那是因?yàn)椋涸趂ile_get_contents()函數(shù)中一個(gè) UTF-8 編碼的漢字占三個(gè)字符長度。而如果設(shè)置的獲取長度不夠,無法獲取到的那個(gè)中文字符,就會顯示為?
號。
<?php header("Content-Type: text/html;charset=utf-8"); //設(shè)置字符編碼 $file = 'test.txt'; $filestr1 = file_get_contents($file,FALSE,NULL,6); echo $filestr1; $filestr2 = file_get_contents($file,FALSE,NULL,0,16); echo "<br>".$filestr2; $filestr3 = file_get_contents($file,FALSE,NULL,0,18); echo "<br>".$filestr3; ?>
輸出結(jié)果:
到此,相信大家對“php怎么把文件全部數(shù)據(jù)存入一個(gè)字符串中”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。