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