溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

php怎么把文件全部數(shù)據(jù)存入一個(gè)字符串中

發(fā)布時(shí)間:2021-08-06 16:10:20 來源:億速云 閱讀:119 作者:chen 欄目:編程語言

本篇內(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)容為:

php怎么把文件全部數(shù)據(jù)存入一個(gè)字符串中

我們先來看看如何使用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é)果:

php怎么把文件全部數(shù)據(jù)存入一個(gè)字符串中

可以看出,不需要打開或關(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é)果:

php怎么把文件全部數(shù)據(jù)存入一個(gè)字符串中

可以看出,$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è)字符串中

到此,相信大家對“php怎么把文件全部數(shù)據(jù)存入一個(gè)字符串中”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(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)容。

php
AI