ホームページ  >  記事  >  バックエンド開発  >  CSV ファイルの読み取りに関する問題

CSV ファイルの読み取りに関する問題

WBOY
WBOYオリジナル
2016-06-23 13:21:531269ブラウズ

次の形式の CSV ファイルがあります:

"11111";"1111111";"2324242";"66dggdgg"LF (改行)
"sdfsfsdfsdf";"sdfsdfsdfsfd";"sdfsdf CR LF (line feed) sf sdf ";"sdfsdfsdfsfsf"LF (改行)

現在の問題は、フィールドの内容に改行文字が含まれていることです。これはどう対処すればよいでしょうか? (東南アジアのスパムプラットフォームによってエクスポートされたファイル形式)


ディスカッション (解決策) に返信

実際のファイル、スクリーンショットでも
を提示し、問題を説明する必要があります。あなたは
に遭遇しました
fgetcsv、str_getcsv は非常にうまく処理できます

http://pan.baidu.com/s/1sjEcrM1
上記はドキュメントのリンクであり、主にコンテンツ内の改行に対処する方法です

$fp = fopen('Order_2015-12-01_113045.csv', 'r');while($buf = fgetcsv($fp, '"', ';')) {  $res[] = $buf;}print_r($res);
Array(    [0] => Array        (            [0] => 锘�"Order Item Id"            [1] => Lazada Id            [2] => Seller SKU            [3] => Lazada SKU            [4] => Created at            [5] => Updated at            [6] => Order Number            [7] => Customer Name            [8] => National Registration Number            [9] => Shipping Name            [10] => Shipping Address            [11] => Shipping Address2            [12] => Shipping Address3            [13] => Shipping Address4            [14] => Shipping Address5            [15] => Shipping Phone Number            [16] => Shipping Phone Number2            [17] => Shipping City            [18] => Shipping Postcode            [19] => Shipping Country            [20] => Billing Name            [21] => Billing Address            [22] => Billing Address2            [23] => Billing Address3            [24] => Billing Address4            [25] => Billing Address5            [26] => Billing Phone Number            [27] => Billing Phone Number2            [28] => Billing City            [29] => Billing Postcode            [30] => Billing Country            [31] => Payment Method            [32] => Paid Price            [33] => Unit Price            [34] => Shipping Fee            [35] => Wallet Credits            [36] => Item Name            [37] => Variation            [38] => Color            [39] => CD Shipping Provider            [40] => Shipping Provider            [41] => Shipment Type Name            [42] => Shipping Provider Type            [43] => CD Tracking Code            [44] => Tracking Code            [45] => Tracking URL            [46] => Promised shipping time            [47] => Premium            [48] => Status            [49] => Reason        )    [1] => Array        (            [0] => 4510457            [1] => 10940553            [2] => lazada000009            [3] => NO037OTAA43BO8ANMY-8132332            [4] => 2015-11-30 14:09:14            [5] => 2015-11-30 15:23:39            [6] => 344351562            [7] =>             [8] =>             [9] => Rinee Ramiah            [10] => UMW TOYOTSU MOTORS SDN BHDNo 1,jalan batu arang,            [11] =>             [12] =>             [13] =>             [14] =>             [15] => 0122533611            [16] =>             [17] => Selangor-Rawang-48000            [18] => 48000            [19] => Malaysia            [20] => Rinee Ramiah            [21] => UMW TOYOTSU MOTORS SDN BHDNo 1,jalan batu arang,            [22] =>             [23] =>             [24] =>             [25] =>             [26] => 0122533611            [27] =>             [28] => Selangor-Rawang-48000            [29] => 48000            [30] => Malaysia            [31] => Cybersource            [32] => 49.25            [33] => 49.25            [34] => 0.00            [35] => 0.00            [36] => BesWLZ Multi Function Mens Military DualTime Digital Analog Chronograph Sport Wrist Watch 50M Water Resistant Waterproof for Boy Girls Child Kids Gift (Green)            [37] => ...            [38] =>             [39] =>             [40] =>             [41] => Dropshipping            [42] => standard            [43] =>             [44] =>             [45] =>             [46] =>             [47] => No            [48] => canceled            [49] => Out of Stock - Product non available        ))

[0][0] BOM ヘッダーの影響により、要素に問題があります。
削除すると正常になります。

BOM ヘッダーを削除するには、テキスト編集ソフトウェアを使用する必要がありますか?それ? PHPを使用している場合、それを削除するにはどうすればよいですか?

$fp = fopen('Order_2015-12-01_113045.csv', 'r');

fseek($fp, 3) //これにより削除されます
while($buf = fgetcsv($fp, '") ', ';')) {
$res[] = $buf;
print_r($res)
は削除されませんが、
はスキップされます

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。