質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

11251閲覧

PHPで読み込んだCSVをHTMLの表で表示したい

退会済みユーザー

退会済みユーザー

総合スコア0

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2016/10/08 05:43

編集2016/10/08 06:33

###前提・実現したいこと
表題のとおりです.今私が書いているコードだと上手く行かず困っております.

###発生している問題・エラーメッセージ
以下のソースコードで,ブラウザ上では氏名年齢収入しか表示されません.非常にシンプルなコードなので不具合を見つけられず困っております.

###該当のソースコード

PHP

1<? 2 $fileName = "data.csv"; 3 $file = fopen($fileName,"r"); 4 ?> 5 <table border="1"> 6 <tr> 7 <td>氏名</td> 8 <td>年齢</td> 9 <td>収入</td> 10 </tr> 11 <? 12 while(!feof($file)){ 13 $csv = fgets($file); 14 $str = explode(",", $csv); 15 ?> 16 <tr> 17 <td><? echo $str[0]; ?></td> 18 <td><? echo $str[1]; ?></td> 19 <td><? echo $str[2]; ?></td> 20 </tr> 21 <? 22 } 23 fclose($file); 24 ?> 25 </table>

###全体像
.phpの全てのソースを示します.サーバーから500が帰ってきます.パーミション,改行コードなどは問題ないことを確認済みです.

PHP

1#!/usr/bin/php-cgi 2<html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 5 <title>年収表</title> 6 </head> 7 8 <body> 9 <?php 10 $fileName = "data.csv"; 11 $file = fopen($fileName,"r"); 12 ?> 13 14 <table border="1"> 15 16 <tr> 17 <td>氏名</td> 18 <td>年齢</td> 19 <td>年収</td> 20 </tr> 21 22 <?php 23 while(!feof($file)){ 24 $csv = fgets($file); 25 $str = explode(",", $csv); 26 ?> 27 28 <tr> 29 <td><?php echo $str[0]; ?></td> 30 <td><?php echo $str[1]; ?></td> 31 <td><?php echo $str[2]; ?></td> 32 </tr> 33 34 <?php 35 } 36 fclose($file); 37 ?> 38 39 </table> 40 41 <?php 42 while(!feof($file)){ 43 $csv = fgets($file); 44 $str = explode(",", $csv); 45 46 var_dump($csv); 47 var_dump($str); 48 ?> 49 50</body> 51 </html> 52

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

また自分(manzyun)です。

while文のところで何か起こってるのだろうなと思うのですが、この書き方だと如何でしょう。
手元にPHP環境が無く、実行していないので確信は持てませんが……。

<?php while(!feof($file)): $csv = fgets($file); $str = explode(",", $csv); ?> <tr> <td><?php echo $str[0]; ?></td> <td><?php echo $str[1]; ?></td> <td><?php echo $str[2]; ?></td> </tr> <?php endwhile; fclose($file); ?>

波括弧 {} の代わりに while():~endwhile; の記法で対処できるのではないかなと思った次第す。


参考資料

投稿2016/10/08 06:44

manzyun

総合スコア2244

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/10/08 06:55

ウルトラビンゴでした.ありがとうございました!
guest

0

直接的な回答になりませんが、デバッグの方法を。

こう言う時はまず「データがどこまで来てるか」を確認するのが良いと思います。

こんな感じでコードに書き加えてみましょう。

<? while(!feof($file)){ $csv = fgets($file); $str = explode(",", $csv); var_dump($csv); var_dump($str); ?>

var_dump関数で変数の中身を確認し、来るであろうデータが来ていなかったら、その手前で何か間違っていることがはっきりします。まずは問題のある箇所の洗い出しから行いましょう。

それと、これはごく個人的に気になるところなのですが、PHPの設定環境によっては

<?php ここにソースを記述 ?>

と書かないと動かない事もあります。試してみてください。


参考資料

投稿2016/10/08 06:10

manzyun

総合スコア2244

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/10/08 06:30

ありがとうございます. <?php にしたところ,サーバーから500が帰ってきました. ということは,私が最初に書いたコードはPHPとして動いていなかったといえます. 少し質問に追記しました.良ければ引き続き,よろしくお願いいたします.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問