• 締切済み

PHPのfgetcsvのデリミタについて

すごく初歩的な質問で申し訳有りませんが、fgetcsvを用いて、タブ区切りのファイルを読み込もうとしています。が、デリミタにタブを指定する場合、どう記入したらよいかわかりません(T-T)。 どなたかご回答お待ちしております…

  • PHP
  • 回答数2
  • ありがとう数5

みんなの回答

  • kusukusu
  • ベストアンサー率38% (141/363)
回答No.2

タブは \t です。

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

> デリミタにタブを指定する場合、どう記入したらよいかわかりません(T-T)。 $fp = fopen ("test.csv","r"); $data = fgetcsv ($fp, 1024, "\t"); ではどうですか?

参考URL:
http://www.php.net/manual/ja/function.fgetcsv.php

関連するQ&A

  • fgetcsv_regについてのご質問

    CAKEPHPについて質問があります。 fgetcsv_regを使用すると、以下のエラーが発生しました。 Call to undefined method HelloController::fgetcsv_reg() $helpersにCSVを指定しましたが、解決できておりません。 大変にお手数ですが、対処方法を教えて頂けますでしょうか?

    • ベストアンサー
    • PHP
  • Delphi6 Delimiterの使い方

    CSVファイルの処理で困っています。 ファイルから1行読んだ後、必要なカラムだけを 取得しようと思っています。 TStrings と DelimitedText を使って カンマで分割してくれるのは便利なのですが、 どうも半角スペースでも分割してしまうようです。 Delimiterプロパティで ',' と指定してるはず なのですが、空白も強制的に分割文字になって しまうんでしょうか? ソースのイメージとしては Var SL: Tstrings; で宣言して begin   ・・・   readln(target, line); { 1行読み込み }   SL := TStringList.Create;   SL.Delimiter := ',';   SL.DelimitedText := line; とやった上で SL[0]とかSL[1]とかで必要なカラムを取得しています。 宜しくお願いします。

  • カンマをデリミタとするレコードを取得したい

    お世話になっております。 現在直面している問題に助言を頂けたらと思い質問をさせて頂きました。 もし、ご存じの方がいらっしゃいましたらご回答を宜しくお願い致します。 MySQLにて テーブルA カラム1  カラム2 1 AAA,BBB,CCC       2 BBB,DDD 3 CCC,DDD,EEE,FFF のようなレコードが入っているとします。 これをカラム2のカンマをデリミタとして分割した文字列でgroup byをしたような結果が欲しいと思っております。 希望結果 文字列 出現回数 AAA   1個 BBB   2個 CCC   2個 DDD  1個 EEE  1個 カンマで分けられている文字列の数に規則性はなく、何が入っているかわからない状態、 また、何個の文字列がカンマによって分割されているかわからない状態です。 AA,BB と2つの文字列がカンマ区切りで入っていることもあれば AA,BBB,CCCC,・・・・ と1000個の文字列がカンマ区切りで入っている状態です。 私が未熟なためか私の調べた限りではこのように取得する方法が見当たりませんした。 DBの構造に関しましては既に動いているサービス内のものですので変更することはできません。 以上、お手隙の際にご回答を宜しくお願い致します。

    • ベストアンサー
    • MySQL
  • テキストファイルのデータ区切り文字(制御文字)について

    テキストファイルにデータを保存しているのですが、区切り文字タブ\tはフィールドの区切りに使っています。 その状態で、仮に1つのフィールドにデータを詰め込む場合、,(カンマ)で区切った場合にデータ自体に金額の,があった場合、誤動作します。フィールドの区切りはタブ\tは普通ですが、1つのフィールドに複数データを持たせる場合の区切り文字は\0など使っても問題ないのでしょうか? 環境はWindows, Linux両方で使います。\0を使ってそれが文字列の最後とまた誤動作しても嫌です。 皆さんは\t以外にテキストデータの区切りにどのような制御文字を使っていますか?ちなみに改行は1レコードの区切り文字です。

    • ベストアンサー
    • Perl
  • ユーザーがcsvファイルを指定して、自動的にmysqlに登録されるよう

    ユーザーがcsvファイルを指定して、自動的にmysqlに登録されるようにするにはどうしたらいいか悩んでいます。 PHPでプログラムを書いているのですが、csvファイルをプログラム側で指定するのではなく、ユーザーにブラウザからファイルを指定してもらいたいのですが(ユーザーのローカルにcsvファイルがある)どのようにしたら上手く出来るのでしょうか? HTMLでinput type="file"で出来ると思いきや、変数の受け渡しができず困っています。なにか良い方法があれば教えて頂けないでしょうか? 何卒宜しくお願い致します。 下記は参考プログラムです。 ======================================== define('CSVFILE', './mycsv.txt');←ここをユーザーに指定してもらいたい。 define('DELIMITER', ',');  //データ区切り(カンマ) define('ENCLOSURE', '"');  //データ囲み文字(ダブルクォーテーション) //ファイルを開く $fp = fopen(CSVFILE, 'r') or die('ファイルが開けません'); //テーブルを出力 echo '<table border="1">'; while ($field_array = fgetcsv($fp, 4096, DELIMITER, ENCLOSURE)) {   echo '<tr>';   foreach ($field_array as $value) {     echo '<td>' . $value . '</td>';     echo '<td>' . htmlspecialchars($value, ENT_QUOTES) . '</td>';   }   echo '</tr>'; } echo '<table>'; //ファイルを閉じる fclose($fp); =========================================

    • ベストアンサー
    • PHP
  • タブで区切られたXXX.csvファイルをエクセルで開くには

    中身はタブで区切られた「XXX.csv」というファイルをエクセルでうまく開くにはどのようにすれば可能でしょうか? Excell2000を使用しています。 XXX.csvファイルをクリックすると、エクセルで開きますが、タブ区切りされておらず、セルAにすべて入ってしまいます。(行への展開は正しい) そのため、はじめにエクセルを開いておいて、ファイル名を指定しますが、これもうまくいきません。 どのようにすれば、タブ区切りという指定が出来て、Excellへ展開することが出来るのでしょうか?

  • フレーム内のPHPへPOSTで情報を送る方法

    初歩的な問題で申し訳ありませんが、回答お願いします。 フォームで作った送信ボタンから、次のページ(HTML)のフレーム内のPHPファイルに情報を送るにはフォームのアクションのところにどの様に指定すればよいのでしょうか?

    • ベストアンサー
    • PHP
  • VBAのSaveFileNamePathメソッド

    VBAでタブ区切りのテキストファイルを作成しようと思い Application.GetSaveAsFilenameメソッドを使用しています。 FileType = "txt ファイル (*.txt),*.txt" Application.GetSaveAsFilename(fileName, FileType, , Prompt) という風にしたところスペース区切りのテキストファイルが作成されてしまいます。 第2引数のFileTypeにタブ区切りのテキストファイルを指定したいのですが、 どうすればタブ区切りにできるかが解りません。 どなたかアドバイス下さい。 お願いいたします。

  • 【DOSコマンド】for の デリミタにダブルクォーテーションを使うには

    下記のような1行だけ書かれたテキストファイルがあり、その中からダブルクォーテーションで囲まれた部分を抜き出そうとしています。 --【abc.txt】----------------------------------------------------------- Command Line: "C:\Program Files\test\test.exe" ---ここまで------------------------------------------------------------- (C:\Program Files\test\test.exe を抜き出したい) DOSコマンドのfor文を使って抜き出そうとしたのですがダブルクォーテーションをどうやってデリミタに指定したらいいのかわかりません。   for /f 'delims=" tokens=2' %i in (test.txt) do @echo %i  とか   for /f "delims="" tokens=2" %i in (test.txt) do @echo %i など いろいろやってみたのですがエラーが出ました。 試しにテキストファイルのダブルクォーテーションを”+”に置き換えて試したところうまく出来たので、デリミタの指定の仕方だけだと思うのですが、どうしてもわかりません。 Command Line: +C:\Program Files\test\test.exe+   に対して for /f "delims=+ tokens=2" %i in (test.txt) do @echo %i はうまく出来ました。 どなたかご享受願えませんでしょうか。 よろしくお願いします。

  • Excelへのデータのインポート

    Excelへのデータのインポートにテキストファイルをインポートする際に、タブ区切り、CSV区切り、Unicode?区切りなどがありますが、区切り文字単位で、データが列に割り当てられるという意味はわかりますが元のファイルがなぜそれぞれの区切りで作成されているのか、意味がわかりません。稚拙な質問でもうしわけありませんが詳細をおしえてください。

専門家に質問してみよう