本文實例講述了php使用fopen創建utf8編碼文件的方法。分享給大家供大家參考。具體實現方法如下:
一般來說,如果我們直接使用fopen創建會發現文件編碼都不是uft-8的了,那麼如果要創建uft8文件我們需要進行一些技術處理。具體步驟如下:
使用PHP創建編碼格式為utf-8文件的方法:
第一步:新建一個txt文件,打開,文件->另存為xxx.php,並將編碼改為UTF-8,保存。
第二部:在php文件中加入如下代碼:
復制代碼 代碼如下:<?php
$filename=rand(100,999).".txt";//定義好要創建的文件名稱和文件格式(按需要自己改)
$str = "PHP學習網[www.jb51.net]";//待寫入新建文件中的內容
if (!$head=fopen($filename, "w+")) {//以讀寫的方式打開文件,將文件指針指向文件頭並將文件大小截為零,如果文件不存在就自動創建
die("嘗試打開文件[".$filename."]失敗!請檢查是否擁有足夠的權限!創建過程終止!");
}
if (fwrite($head,$str)==false) {//執行寫入文件
fclose($head);
die("寫入內容失敗!請檢查是否擁有足夠的權限!寫入過程終止!");
}
echo "成功創建UTF-8格式文件[".$filename."],並向該文件中寫入了內容:".$str;
fclose($head);
?>
使用這種方法創建UTF-8編碼文件的關鍵點:
① 保證PHP代碼文件本身的編碼格式為UTF-8
② php代碼文件的編碼格式是什麼則創建出來的文件編碼也是什麼
③ 顯示出現亂碼的問題
控制頁面顯示的因素主要有三個:
1.HTML代碼控制:標准HTML網頁文件中的head標簽內部包含了這一句代碼<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />,代碼中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);
?>
希望本文所述對大家的PHP程序設計有所幫助。