php fopen建立utf8編碼檔案例子

來源:互聯網
上載者:User

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

第一步:建立一個txt檔案,開啟,檔案->另存新檔xxx.php,並將編碼改為UTF-8,儲存。
第二部:在php檔案中加入如下代碼:

 代碼如下 複製代碼
<?php
$filename=rand(100,999).".txt";//定義好要建立的檔案名稱和檔案格式(按需要自己改)
$str = "PHP知名網[www.111cn.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);
?>

 至於"\xEF\xBB\xBF"為什麼加這字串,我也不明白

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.