CSVファイルに保存し中身を見るとhtmlの記述まで入ってしまう
環境はxamppでしてます
色々調べたのですが、出てきませんでした。
質問は
htmlの記述まで入ってしまう原因を知りたい。
php , html , sql始めたばかりで、コードについてアドレスもいただけると幸いです。
php
1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="UTF-8"> 5 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 <title>download</title> 8</head> 9<body> 10 <h1> aodgawefa</h1> 11<?php 12 $file = tmpfile(); 13 14 $dsn = 'mysql:dbname=comment_db; host=localhost; charset=utf8'; 15 $user = 'root'; 16 $password = ''; 17 18 $dbh = null; 19 $res = null; 20 $comment_array = []; 21 22 try{ 23 $dbh = new PDO($dsn, $user, $password); //PHP Data Objexts PDOExceptionをスローする。 24 25 if ($dbh == null){ 26 print('接続に失敗しました。<br>'); 27 }else{ 28 print('接続に成功しました。<br>'); 29 } 30 31 $sql = "SELECT * FROM message ORDER BY date ASC"; 32 33 $res = $dbh->query($sql); 34 35 if($res){ $comment_array = $res->fetchAll(); } 36 37 }catch(PDOException $e){ 38 die('Error:'.$e->getMessage()); 39 } 40 $dbh = null; //閉じる 41 42 43 fputcsv($file, ['id', 'name', 'comment', 'date']); 44 foreach($comment_array as $value){ 45 46 $comment = array( 47 'id' => $value['id'], 48 'name' => $value['name'], 49 'message' => $value['comment'], 50 'date' => $value['date'] 51 ); 52 53 mb_convert_variables('SJIS', 'UTF-8', $comment); 54 fputcsv($file, $comment); 55 } 56 $path = stream_get_meta_data($file)['uri']; 57 58 header('Content-Type: application/octet-stream'); 59 // ファイル名 60 header('Content-Disposition: attachment; filename=コメント.csv'); 61 62 header('Content-Transfer-Encoding: binary'); 63 // ファイルを出力する 64 readfile($path); 65 66?> 67 68</body> 69</html>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/06 19:27