Re: [問題] 用flash抓php的文字
※ 引述《aquarianboy (ED)》之銘言:
: ※ 引述《Rose7 (ROSE)》之銘言:
: : 其實這個問題也搞不懂是要去flash板問還是這邊問
: : 我用flash去抓php的文字 可是照我這樣的寫法顯示不出來呢
: : 這是php檔的內容
: : --------------------------------------
: : <?
: : $file = fopen("test.txt" , "r") ;
: : $data = fread($file , filesize("test.txt")) ;
: : fclose($file) ;
: : echo $data . "二";
: : ?>
: : ----------------------------------------
: : test.txt的內容是
: : ------------
: : a=一
: : ------------
: : 然後flash的程式碼是
: : var Online = new LoadVars();
: : Online.load("test.php");
: : Online.onLoad = function(success:Boolean) {
: : _root.text = Online.a ;
: : }
: : 兩個文件檔都有存utf8格式
: : 可是flash文字欄顯示的是undefined
: : 但如果我把php這一行 echo $data . "二"; 改成
: : echo "a=一" . "二";
: : flash就可以顯示出來 一二
: : 這是為什麼呢?
: unicode的東西常會遇到某個關卡沒打通就會出現問題
: 從web server的設定、文字檔的格式,到flash都有編碼的相關設定
: 有的預設使用unicode,有的不是 :)
: 如果第二種方法flash可以顯示出文字,但第一種不行
: 有可能是:
: 1. php讀取文字檔發生錯誤(可能是找不到檔案、檔案大小寫或是權限問題)
: 2. php讀到文字但印不出來(可能是編碼問題(我猜的))
: 有沒網址可以參考呢?
: 可能可以更快找到問題 :)
測試了一下
發現似乎是因為utf8格式的前三個字元的關係
剛剛把php檔用ANSI和UTF8兩種格式各跑一次
兩邊都 echo $data,然後執行php並將瀏覽器內容存成txt
再用Winhex開啟來看,utf8的前面比ANSI的多了EF BB BF
所以flash在讀mime格式時,才會發生讀不到 a
目前解決方法是將php存成ansi 然後若有從php中產生的中文
則要用函式轉成utf8才能給flash讀正確
以上是自己推論的 不知道是不是正確 但問題有確實解決了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.230.30.129
推
10/26 01:43, , 1F
10/26 01:43, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):