問題タブ [fgetcsv]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
7541 参照

php - 大きなファイルの読み取り時のメモリ不足エラー

解析してデータベースに挿入したい大きな csv があります。私はこのPHPを持っています:

スクリプトを実行しようとするたびに、次のエラーが発生します。

これを行う方法はありますか?

0 投票する
1 に答える
487 参照

php - PHPでfgetcsv関数をデバッグするには?

関数の使用に問題がありfgetcsvます。問題は、正確なコードがローカルでは機能するが、サーバーでは機能しないことです。コードは次のとおりです。

デバッグすると、$handle の print_r は何かを返しますが (リソース #99)、print_r $data は何も返しません。

ローカルでテストするとまったく同じコードと .csv ファイルが機能するため、これは私にとっては少し奇妙です。ファイルがアップロードされ、fopen が正しい値を返すことを確認できるため、アップロード csv 関数が機能します。

私が気付いた唯一の違いは、そのページではライブサーバーが https を使用していることですが、ファイルがアップロードされ、fopen が成功するため、これは問題ではないと思います。

誰にもアイデアがありますか?

更新 [解決済み] : 解決策を見つけました。ライブ サーバーでは、このページは https を使用していますが、csv ファイルを送信するためのフォーム URL の前に https がありませんでした。

0 投票する
1 に答える
1322 参照

php - fgetcsvを使用したCSVへの書き込み

PHPコードに問題があります。基本的に私はCSVで人のリストを持っており、fgetcsvを使用してそのファイルをテーブルに読み込んでいます。私がやろうとしているのは、名前をリンクとして表示し、リンクをクリックして、fputcsvを呼び出し、名前の横に1を付けることです。

現在、表示部分のみが機能しています。執筆の部分からどこから始めればよいのかよくわかりません。

任意の洞察をいただければ幸いです。

本当にありがとう!!

0 投票する
6 に答える
122286 参照

php - fgetcsvでCSVファイルを読み取る際のUTF-8の問題

CSVを読み取って、コンテンツをエコーし​​ようとしています。しかし、コンテンツは文字を間違って表示します。

MäxMüstermänn->MäxMüstermänn

CSVファイルのエンコードはBOMなしのUTF-8です(Notepad ++でチェック)。

CSVファイルの内容は次のとおりです。

"Mäx";"Müstermänn"

私のPHPスクリプト

ここでsetlocale(LC_ALL, 'de_DE.utf8');提案されているように使用しようとしましたが、成功しませんでした。コンテンツはまだ間違って表示されています。

私が欠けているものは何ですか?

編集:

echo mb_detect_encoding($data[$c],'UTF-8');私にUTF-8UTF-8を与えます。

echo file_get_contents("specialchars.csv");私に与えます"Mäx";"Müstermänn"

私にくれます

Array ( [0] => Mäx [1] => Müstermänn )

どういう意味ですか?

0 投票する
6 に答える
392362 参照

php - PHP を使用して CSV ファイルを解析する方法

.csv次の内容のファイルがあるとします。

PHP でコンテンツを解析するにはどうすればよいですか?

0 投票する
2 に答える
814 参照

php - phpを使用して複数のネストされた配列をファイルに書き込みます

私がやろうとしているのは、BusinessCatalystで生成された製品のCSVを取得することです。しかし、それは私が必要としないものを常にたくさん含んでいます。

fgetcsv()を使用するスクリプトがあります。コードは

これは、必要なデータを表示するだけです。

しかし、私が今やりたいのは、これから新しいCSVファイルを書くことです。fwrite()を使用すると、データの最初のエントリのみが書き込まれます。

何か案は?

0 投票する
4 に答える
5567 参照

php - PHPでcsvファイルの先頭(1行目)に1行追加

php で大きな csv ファイルを処理する必要があります。fgetcsv での作業とパフォーマンスはかなり良いようです。さらに優れた/高速な処理のために、csv ファイルの最初の行に列名を付けたいと思いますが、これは現在欠落しています。

ここで、fgetcsv でファイルを処理する前に、PHP で csv ファイルに列名を含む一番上の行を追加したいと思います。

PHPでファイルの先頭に行を簡単に追加する方法はありますか? または、これは、以下のようなアプローチを取らなければならないことを意味しますか?

  1. リスト項目
  2. リスト項目
  3. 一時ファイルを作成する
  4. この一時ファイルに列名を追加します
  5. 元の csv ファイルの内容を読み取る
  6. 元の csv コンテンツを一時ファイルに入れる
  7. 元のファイルを削除
  8. 一時ファイルの名前を変更します

最も効果的な方法でこれを行う方法についてのフィードバックは高く評価されます。御時間ありがとうございます :)

0 投票する
2 に答える
8273 参照

php - str_getcsv() ファイルはすべての行を 1 つの長い配列で返し、fgetcsv() は一番上のヘッダー行のみを返します

Excel を使用して CSV ファイルとして保存したファイルがあります (互換性の問題を回避するために、Windows 7 と Mac OSX の両方で試しました)。

私がこれを行うとき:

すべての行が 1 つの行に変わり、1 レベルの深さしかなく、何千ものキーが連続して実行される配列が得られます。

そこで、別のアプローチを試しました:

これは最初の行 (ヘッダーの行) のみを返し、それを超えることはありません。これを正しく行うにはどうすればよいですか?何百もの行があり、行ごとに約 12 個の配列があるため、2 次元のものを取得する必要があります。

CSV では、各行は改行で区切られ、値はコンマで区切られます。囲みはありません。

0 投票する
3 に答える
5786 参照

php - PHP - fgetcsv() リセットポインタ

fgetcsv() でファイル ポインタをリセットするにはどうすればよいですか?

以下のループは、別の while ループ内にネストされています。ただし、最初の実行後の最初ではなく、ブレークポイントから CSV の読み取りを開始します。

0 投票する
1 に答える
1923 参照

php - Using fseek to start reading a CSV after a certain number of lines

I am using the current code to read a csv file and add it to an array:

However when using a very large CSV this times out on the server, or has a memory limit error.

I'd like a way to do it in stages, so after the first say 100 lines it will refresh the page, starting at line 101.

I will probably be doing this with a meta refresh and a URL parameter.

I just need to know how to adapt that code above to start at the line I tell it to.

I have looked into fseek() but I'm not sure how to implement this here.

Can you please help?