2016-03-28 34 views
1

私のスクリプトには以下のコードがあります。fputcsvは空白でもう1つスペースを作成します

​​

与えられた値でcsvファイルを作成します。 ここで私の問題は、ダブルワードで余分なスペースを作成することです。 例「国名」は「国   」(2桁のスペース)と書かれています。

これを解決する方法。

+0

それはいくつかのヒントに何が起こっているかは全く明らかではないものの:、それは '$のproj_lists'からその末尾の改行を削除しません何らかの意味を持ち、行ベースのプロセスで問題を引き起こす可能性があります。次に、選択した囲み文字(空白)を意味のあるものに置き換えます。もう一度やり直してください。 – arkascha

+0

これを取り除くと、二重引用符が追加されます。出力:名前、年齢、住所、 "都市名"、 "国名" – ManiMuthuPandi

+0

また改行を削除しました – ManiMuthuPandi

答えて

0

は、実際に、あなたは以下のようにfputs()で作業する必要があります -

<?php 
    $file= fopen("./test.csv","x+"); 
    $proj_lists=explode(',',"name,age,address,city name,country name"); 
    fputs($file,implode($proj_lists, ',')); 
    fclose($file); 
?> 

出力: - name,age,address,city name,country name

+0

文字列の前後にスペースがあります。 – ManiMuthuPandi

+0

私が必要とするように動作します – ManiMuthuPandi

+0

'fputs'を使うことは' fputcsv'をあなたの使い方で置き換えるものではありません。 –

0

ここに私の問題は、それがダブルワードで余分なスペースを作成しているのです

文字列囲み文字としてスペースを使用することを選択したため(4番目の引数、デフォルト値は二重引用符です)ここでは、出力の最初の行です:eは囲いがある

name,age,address, city name , country name 
       ^ ^^ ^^  ^^ 
       e ee e e  ee 

は、とeeはあなたがしているデータの一部であることを起こる囲い文字(続くエスケープ文字でエスケープ筐体であり、出力しようとする)。

fputcsvに付属のデフォルトをそのまま使用することをお勧めします。つまり、2つの引数のみを使用して関数を呼び出します。

ほとんどのスプレッドシートアプリケーションを読み取ることができるものを出力します
fputcsv($file, explode(',', $proj_lists)); 

name,age,address,"city""name","country name 
" 
関連する問題