FGETCSVとFPUTCSVを使用して2つの文字列を連結する方法は?
質問
CSVファイルを読み取り、FGETCSVを使用してTextareaに表示するスクリプトを作成しています。
$handle = @fopen($filePath, "r"); if ($handle) { while (($buffer = fgetcsv($handle, 1000,",")) !== false) { foreach($buffer as $buff){ echo $buff."\n"; } } }
CSVの形式はです
"line1-content1"、 "line1-content2"
"line2-content1"、 "line2-content2"FGETCSVを使用して、コンテンツはダブルクォートとコンマなしでテキストアレア内に表示されます。 デュオブルの引用とコンマも表示するようにフォーマットできますか?
その後、FPUTCSVを使用して保存すると
$file_to_load = $_GET['filepath']; $filePath = $dir.$file_to_load; $trans = trim($_POST['txtarea']); $keyarr = split("\n",$trans); $fp = fopen($filePath, 'w'); foreach (array ($keyarr) as $fields) { fputcsv($fp, $fields); } fclose($fp);
CSVファイルを見ると、CSVを保存しましたが、このように表示します
"line1-content1
"、" line1-content2
"、" line2-content1
"、" line2-content2 "「line1-content1」と「line1-content2」を2行に分離し、すべての行の終了後にコンマを配置します。
- 今、私は#2のフォーマットを維持したいと思います。 どのようにコーディングしますか?
私を正しい方向に導いてもらえますか?ありがとう!
解決
CSV内の解析データではなく、実際の生のCSVテキストを表示したいように聞こえます。使用する代わりに fgetcsv()
, 、ただ使用してください fgets()
そして、あなたは何も解析せずにテキストラインを取得し、引用符とコンマを保存します。
fputcsvについては、あなたがそれに渡すものを書き留めるので、フォームから戻ってくるものは何でもクリーンアップされていることを確認してください(たとえば、余分なラインブレークが剥がれました)。
所属していません StackOverflow