php使用fopen建立utf8編碼檔案的方法

2021-09-24 11:32:11 字數 1737 閱讀 2085

一般來說,如果我們直接使用fopen建立會發現檔案編碼都不是uft-8的了,那麼如果要建立uft8檔案我們需要進行一些技術處理。具體步驟如下:

使用php建立編碼格式為utf-8檔案的方法:

第一步:新建乙個txt檔案,開啟,檔案->另存為***.php,並將編碼改為utf-8,儲存。

第二部:在php檔案中加入如下**:

複製** **如下:

<?php

$filename=rand(100,999).".txt";//定義好要建立的檔名稱和檔案格式(按需要自己改)

$str = "php學習網[www.jb51.net]";//待寫入新建檔案中的內容

if (!$head=fopen($filename, "w+"))

if (fwrite($head,$str)==false)

echo "成功建立utf-8格式檔案[".$filename."],並向該檔案中寫入了內容:".$str;

fclose($head);

?>

使用這種方法建立utf-8編碼檔案的關鍵點:

① 保證php**檔案本身的編碼格式為utf-8

② php**檔案的編碼格式是什麼則建立出來的檔案編碼也是什麼

③ 顯示出現亂碼的問題

控制頁面顯示的因素主要有三個:

1.html**控制:標準html網頁檔案中的head標籤內部包含了這一句**,**中charset=utf-8這句就是告訴瀏覽器要以utf-8格式將網頁中的內容顯示出來。

2.php**控制:如果在php檔案的開頭加上header(「content-type: text/html; charset=utf-8」);這句**,也是為了告訴瀏覽器要以utf-8格式將網頁中的內容顯示出來。(注:這句**之前不能有類似echo的輸出)

3.檔案物理儲存屬性控制:用記事本開啟乙個檔案,檔案->另存為,你在「編碼」中所看到的就是當前檔案的真正的編碼

補充乙個fopen例子

複製** **如下:

<?php

$f=fopen("test.txt", "wb");

$text=utf8_encode("a!");

//先用函式utf8_encode將所需寫入的資料變成utf編碼格式。

$text="\xef\xbb\xbf".$text;

//"\xef\xbb\xbf",這串字元不可缺少,生成的檔案將成為utf-8格式,否則依然是ansi格式。

fputs($f, $text);

//寫入。

fclose($f);

?>

這樣建立出的檔案編碼格式確實是utf-8,但是放在檔案中的漢字出現了亂碼的現象,經過一番除錯,**如下:

複製** **如下:

<?php

$ctxtsubmit="好呀";

$f=fopen("../".$file, "wb");

//$text=utf8_encode($ctxtsubmit);

//先用函式utf8_encode將所需寫入的資料變成utf編碼格式。

$text="\xef\xbb\xbf".$ctxtsubmit;

//"\xef\xbb\xbf",這串字元不可缺少,生成的檔案將成為utf-8格式,否則依然是ansi格式。

fputs($f, $text);

//寫入。

fclose($f);

?>

fopen()函式的使用

定義函式 file fopen const char path,const char mode 函式說明 引數path字串包含欲開啟的檔案路徑及檔名,引數mode字串則代表著流形態。mode有下列幾種形態字串 r 開啟唯讀檔案,該檔案必須存在。r 開啟可讀寫的檔案,該檔案必須存在。rb 讀寫開啟乙個...

fopen的使用方法

matlab中fopen函式在指定檔案開啟的例項如下 1 fopen 開啟檔案,賦予檔案代號。語法1 fid fopen filename,permission 用指定的方式開啟檔案 fid n n是正整數 表示檔案開啟成功,檔案代號是n.fid 1 表示檔案開啟不成功。fid在此次檔案關閉前總是有...

fopen 及相關函式使用

函式簡介 函式功能 開啟乙個檔案 函式原型 file fopen const char path,const char mode 相關函式 open,fclose,fopen s 1 wfopen 所需庫 返回值 檔案順利開啟後,指向該流的檔案指標就會被返回。如果檔案開啟失敗則返回null,並把錯誤...