- ベストアンサー
fputcsv()で1レコード1行になるように書き込みたい
PHPでメールフォームを作成しており、ログをCSVファイルで取ろうと考えています。 下記のようなコードで作成してみたのですが、送信すると [1行目]あああ [2行目]いいい [3行目]ううう という感じで改行して記録されてしまいます。 これを、 [1行目]あああ,いいい,ううう [2行目]かかか,ききき,くくく という形で、1レコード1行になるように記録できないでしょうか。 どうぞよろしくお願いします。 ---以下コード--- <?php //フォームの値を取得 if ($_SERVER["REQUEST_METHOD"] == "POST"){ foreach ($_POST as $k => $v){ //「magic_quotes_gpc=On」のときはエスケープ解除 if (get_magic_quotes_gpc()){ $v = stripslashes($v); } $v = htmlspecialchars($v); $$k = $v; } } //言語コード指定 mb_language('Japanese'); mb_internal_encoding("SJIS"); //保存ファイル $file_name = "file.csv"; //配列を作成 $array = array($name , $phone , $add); //ファイルを開く $file = fopen($file_name, "a+") or die("OPENエラー $file_name"); //書き込み if (is_array($array)){ foreach($array as $list){ fputcsv($file, split(',',$list)); } } else { echo "<p>書き込みエラー</p>"; } //ファイルを閉じる fclose($file); ?> <form action="<?php echo $_SERVER["PHP_SELF"] ?>" method="post"> <fieldset><legend>フォーム</legend> 名前:<input name="name" id="name" type="text" size="40" value="" /><br /> 電話:<input name="phone" id="phone" type="text" size="40" value="" /><br /> 住所:<textarea name="add" id="add" cols="40" rows="2"></textarea><br /> <input name="submit" type="submit" value="送信" /> </fieldset> </form>
- みんなの回答 (3)
- 専門家の回答
お礼
まさにマニュアルのサンプル通りに打ち込んで引っかかってしまいました。 おっしゃる通りに修正したところ、無事入力することができました。 今後の為にきちんと覚えておこうと思います。 どうもありがとうございました。