ホームページ > バックエンド開発 > PHPチュートリアル > php_PHPチュートリアルでcsv形式ファイルの文字列を抽出する解決策

php_PHPチュートリアルでcsv形式ファイルの文字列を抽出する解決策

WBOY
リリース: 2016-07-13 10:27:58
オリジナル
1033 人が閲覧しました

phpでcsv形式のデータの場合は、fgetcsv()関数を使う必要があります。

次の文を使用してください

$hd=fopen('test.csv','r');

$buf=fgetcsv($hd,1000,',');

test.csv形式のファイルを開きます。ファイル内の内容は「,」文字で区切られています。

取り出した最初の行は、id、メッセージ、時刻などの自動的な意味を表します。

2行目からは、1、メッセージ、12:00など、具体的なデータを表します。

if($buf[1]=="いくつかのメッセージ") echo "はい";

2 行目以降、このステートメントの出力結果は Yes になるはずですが、試してみると、出力がないことがわかります。

これはなぜですか?

strlen()関数を使うと、$buf[1]と「メッセージ」の長さを比較できます。

比較の結果は不平等でした。

なんと、この問題はどうして起こるのでしょうか? 明らかに、2行目の$buf[1]から取り出した値は「message」ですが、なぜ長さが異なるのでしょうか?

これはcsv形式ファイルのエンコード方法に関係します。

この問題を解決するにはどうすればよいですか?

まず、PHP の文字エンコーディング検出関数 mb_detect_encoding($buf[1],'UTF-8,EUC-CN,ASSII') を使用します

抽出されたエンコード形式が「EUC-CN」の場合、次のステートメントを使用して utf8 エンコード形式に変換します。

PHP の文字変換関数 mb_convert_encoding(), $res=mb_convert_encoding($buf[1],'UTF-8','EUC-CN') を使用します。

変換結果 $res と文字列 "message" を比較すると、最終的に等しいことがわかります。

http://www.bkjia.com/PHPjc/814673.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/814673.html技術記事 CSV 形式のデータで PHP を使用するには、fgetcsv() 関数を使用する必要があります。 次のステートメント $hd=fopen('test.csv','r'); $buf=fgetcsv($hd,1000,','); を使用して、test.csv 形式のファイルとそのコンテンツを開きます。ファイル..
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート