2017-02-10 22 views
2

私はCSVファイルから読み込むPHPスクリプトを持っています。ファイルはUTF-8形式であり、以下のコードはASCIIとして扱います。ファイルをUTF-8として読み取るようにコードを変更するにはどうすればよいですか?PHP読み込みUTF-8 CSV

if (($handle = fopen("books.csv", "r")) === FALSE) 
    throw new Exception("Couldn't open books.csv"); 
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { 

[EDIT] 私の現在のコードの問題の一つは、最初の行の最初の値は、常に先頭に付加し、UTF-8のファイルを識別する3つのバイトを有していることです。だから私は値または行ごとに値で動作するソリューションは十分ではないかもしれないと思いますか?

+0

候補]読書:http://stackoverflow.com/questions/279170/utf-8-all-the-way-through – wogsland

答えて

0

fgets()を使用すると、変数$ dateにあるすべての文字列を取得し、次にmb_convert_encoding()でエンコーディングを変換し、str_getcsv()で文字列を配列に変換します。

if (($handle = fopen("books.csv", "r")) === FALSE) 
    throw new Exception("Couldn't open books.csv"); 

$data = ""; 

// get file all strin in data 
while (!feof($handle)) { 
    $data .= fgets($handle, 5000); 
} 

// convert encoding 
$data = mb_convert_encoding($data, "UTF-8", "auto"); 

// str_getcsv 
$array = str_getcsv($data); 
+0

$データは私のコードで配列され、これを上適用する方法がありますストリームはfgetcsvで使用する前に? – Bishoy

+0

申し訳ありませんが、間違った変数を書き、関数を変更します。 –

+0

まだ動作していません:)最初のパラメータは文字列でなければならないというエラーが表示されます – Bishoy

関連する問題