一般來說,如果我們直接使用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,並把錯誤...