問題タブ [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.
php - 大きなファイルの読み取り時のメモリ不足エラー
解析してデータベースに挿入したい大きな csv があります。私はこのPHPを持っています:
スクリプトを実行しようとするたびに、次のエラーが発生します。
これを行う方法はありますか?
php - PHPでfgetcsv関数をデバッグするには?
関数の使用に問題がありfgetcsv
ます。問題は、正確なコードがローカルでは機能するが、サーバーでは機能しないことです。コードは次のとおりです。
デバッグすると、$handle の print_r は何かを返しますが (リソース #99)、print_r $data は何も返しません。
ローカルでテストするとまったく同じコードと .csv ファイルが機能するため、これは私にとっては少し奇妙です。ファイルがアップロードされ、fopen が正しい値を返すことを確認できるため、アップロード csv 関数が機能します。
私が気付いた唯一の違いは、そのページではライブサーバーが https を使用していることですが、ファイルがアップロードされ、fopen が成功するため、これは問題ではないと思います。
誰にもアイデアがありますか?
更新 [解決済み] : 解決策を見つけました。ライブ サーバーでは、このページは https を使用していますが、csv ファイルを送信するためのフォーム URL の前に https がありませんでした。
php - fgetcsvを使用したCSVへの書き込み
PHPコードに問題があります。基本的に私はCSVで人のリストを持っており、fgetcsvを使用してそのファイルをテーブルに読み込んでいます。私がやろうとしているのは、名前をリンクとして表示し、リンクをクリックして、fputcsvを呼び出し、名前の横に1を付けることです。
現在、表示部分のみが機能しています。執筆の部分からどこから始めればよいのかよくわかりません。
任意の洞察をいただければ幸いです。
本当にありがとう!!
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 )
どういう意味ですか?
php - PHP を使用して CSV ファイルを解析する方法
.csv
次の内容のファイルがあるとします。
PHP でコンテンツを解析するにはどうすればよいですか?
php - phpを使用して複数のネストされた配列をファイルに書き込みます
私がやろうとしているのは、BusinessCatalystで生成された製品のCSVを取得することです。しかし、それは私が必要としないものを常にたくさん含んでいます。
fgetcsv()を使用するスクリプトがあります。コードは
これは、必要なデータを表示するだけです。
しかし、私が今やりたいのは、これから新しいCSVファイルを書くことです。fwrite()を使用すると、データの最初のエントリのみが書き込まれます。
何か案は?
php - PHPでcsvファイルの先頭(1行目)に1行追加
php で大きな csv ファイルを処理する必要があります。fgetcsv での作業とパフォーマンスはかなり良いようです。さらに優れた/高速な処理のために、csv ファイルの最初の行に列名を付けたいと思いますが、これは現在欠落しています。
ここで、fgetcsv でファイルを処理する前に、PHP で csv ファイルに列名を含む一番上の行を追加したいと思います。
PHPでファイルの先頭に行を簡単に追加する方法はありますか? または、これは、以下のようなアプローチを取らなければならないことを意味しますか?
- リスト項目
- リスト項目
- 一時ファイルを作成する
- この一時ファイルに列名を追加します
- 元の csv ファイルの内容を読み取る
- 元の csv コンテンツを一時ファイルに入れる
- 元のファイルを削除
- 一時ファイルの名前を変更します
最も効果的な方法でこれを行う方法についてのフィードバックは高く評価されます。御時間ありがとうございます :)
php - str_getcsv() ファイルはすべての行を 1 つの長い配列で返し、fgetcsv() は一番上のヘッダー行のみを返します
Excel を使用して CSV ファイルとして保存したファイルがあります (互換性の問題を回避するために、Windows 7 と Mac OSX の両方で試しました)。
私がこれを行うとき:
すべての行が 1 つの行に変わり、1 レベルの深さしかなく、何千ものキーが連続して実行される配列が得られます。
そこで、別のアプローチを試しました:
これは最初の行 (ヘッダーの行) のみを返し、それを超えることはありません。これを正しく行うにはどうすればよいですか?何百もの行があり、行ごとに約 12 個の配列があるため、2 次元のものを取得する必要があります。
CSV では、各行は改行で区切られ、値はコンマで区切られます。囲みはありません。
php - PHP - fgetcsv() リセットポインタ
fgetcsv() でファイル ポインタをリセットするにはどうすればよいですか?
以下のループは、別の while ループ内にネストされています。ただし、最初の実行後の最初ではなく、ブレークポイントから CSV の読み取りを開始します。
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?