PHPでCSVファイルを部分的に読込む方法

このQ&Aのポイント
  • PHPを使用してCSVファイルから一部のデータを読み込む方法はありますか?
  • 私のWebサイトでは、テーブルに商品名と金額を表示しています。CSVファイルからこのデータを読み込むことはできますか?
  • Webサイトのテーブルに表示されているデータをCSVファイルから読み込む方法を教えてください。
回答を見る
  • ベストアンサー

PHPでCSVファイルを部分的に読込む方法

CSVファイルに入力した項目を、PHPで部分的に読込むことは可能でしょうか? 私が作成しているWebサイトには、次のようにテーブル機能を使って、商品名と金額を記載しているページがあります。 <table class="table1" width="100%" cellspacing="0" cellpadding="0" border="0"> <tr> <td>メニュー1<img src="http://1-1.gif"><br>和食<br>てんぷら<br><span class="red">500円</span></td>  <td>メニュー2<img src="http://1-2.gif"><br>洋食<br>ステーキ<br><span class="red">500円</span></td>  <td>メニュー3<img src="http://1-3.gif"><br>中華<br>ラーメン<br><span class="red">500円</span></td> </tr> </table> このテーブルには、「メニュー1」、「和食」、「てんぷら」、「500円」が入力されておりますが、この部分を次のようなCSVファイルから読込むことは可能でしょうか? メニュー1,和食,てんぷら,500円 メニュー2,洋食,ステーキ,500円 メニュー3,中華,ラーメン,500円

noname#233083
noname#233083
  • PHP
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • yuu_x
  • ベストアンサー率52% (106/202)
回答No.3

文字コードは何になってますでしょうか? UTF-8 以外の場合、CSV が正確にパースされない可能性があります。 また、return htmlentities( $str, ENT_QUOTES, 'UTF-8' ); の部分を文字コードに合わせて変更してください。

noname#233083
質問者

お礼

ありがとうございます。 読込み元の文字コードは、headの部分に次のように記録しております。 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 読込み先のCSV(エクセルでCSV形式で保存してます)は、文字コードの設定はしていません。UTF-8に設定できるのでしょうか? ちなみにエクセルのヴァージョンは2010です。 すみません、覚えが悪くて・・・

その他の回答 (1)

  • axuaxua
  • ベストアンサー率36% (82/223)
回答No.1

<pre><?php $array = array('メニュー1,和食,てんぷら,500円', 'メニュー2,洋食,ステーキ,500円', 'メニュー3,中華,ラーメン,500円'); $c = count($array); $menu = array(); for($i = 0; $i < $c; $i++) list($menu[$i]['no'], $menu[$i]['genre'], $menu[$i]['name'], $menu[$i]['price']) = explode(',', $array[$i]); print_r($menu);exit; ?> 後は$menuを一致する部分に順に埋め込むだけだと思います。

noname#233083
質問者

お礼

ありがとうございます。 後で試してみます!!

関連するQ&A

  • CSVファイルの読み込みで日本語が出力されない!

    PHPを使ってCSVファイルを部分的に読み込むコードを教えてもらいました。 しかし、CSVに入力している英語と数字は出力されるのに、日本語は空白のままでした。 教えてもらったコードは次の通りですですが、日本語も出力する場合、どうしたら良いのでしょうか? <?php function h( $str ) { return htmlentities( $str, ENT_QUOTES, 'UTF-8' ); } ?> <? if (($handle = fopen("test.csv", "r")) !== FALSE) : ?> <table class="table1" width="100%" cellspacing="0" cellpadding="0" border="0"> <tr> <? $i = 0; ?> <? while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) : $i ++ ?> <td><?=h($data[0])?><img src="http://1-<?=h($i)?>.gif"><br><?=h($data[1])?><br><?=h($data[2])?><br><span class="red"><?=h($data[3])?>円</span></td> <? endwhile; ?> </tr> </table> <? fclose($handle); ?> <? endif; ?>

    • ベストアンサー
    • PHP
  • 色のついた外枠を部分的に付けたいのですが、どうすればいいでしょうか?

    色のついた外枠を部分的に付けたいのですが、どうすればいいでしょうか? <tr> <td width="864" class="style49"> <p align="center"><a href="link/ryoukin.html" class="style49"><br /> <img src="image/web_004.gif" alt="格安引越が出来る理由" width="200" height="50" border="0"/></a><strong><a href="link/ryoukin.html" class="style49"><span class="style51"><img src="image/web_003.gif" alt="重要事項説明" width="200" height="50" border="0"/></span></a><a href="link/ryoukin.html" class="style49"><img src="image/web_005.gif" alt="料金計算書・オプション価格" width="200" height="50" border="0"/></a><br /> </strong></p> <p align="center"><strong><br /> <br /> <img src="image/web_010.gif" alt="引越プラン" width="130" height="35" /><br /> <br /> <a href="link/link1.html" class="style49"><span class="style58"><img src="image/web_007.gif" alt="フローチャート式お見積作成" width="200" height="95" border="0"/></span></a> <span class="style58"><a href="link/link0.html" class="style49"><img src="image/web_008.gif" alt="お荷物記載による個別お見積作成" border="0"/></a></span> <a href="http://*****.**.****.**/postmail/postmail2.html" class="style49" ><img src="image/web_009_03.gif" alt="各種お問合せ" border="0"/></a><br /> </strong></p> <p></p> ちなみに引越プランからフローチャート式お見積作成、お荷物記載による個別お見積作成、各種お問合せまで全部を一枠で部分的に外枠で囲みたいのですが、どのようなやり方があるでしょうか? 部分的に囲めなくてすごく困っています。どうかよろしくお願いいたします。

    • ベストアンサー
    • HTML
  • 画像クリックで指定のテーブルの背景画像を変えたい

    文字をクリックすると指定のテーブルの背景色が変わるようにしたい、という事で <table border width=100 height=100><td id="aa">aa</td></table><br> <span onClick="aa.style.background='red'">赤</span> を教えて頂いたのですが、これをテキストではなく画像にするの場合は <span onClick="aa.style.background='gazou.gif'"><img src="gazou.gif"></span> でやってみたものの出ませんでした。これではだめなのでしょうか^^;

    • ベストアンサー
    • HTML
  • tableの作成方法について

    よろしくお願いします。 表を以下のように作成しました。 表の横のラインに罫線を引きたいのですが記述方法が分かりません。 表の周りにはcssで記述して2pxの罫線を引いてあります。 どなた様か、ご指導の程よろしくお願いします <table> <tr> <td rowspan="3" class="b"><img src="img/wg.jpg" alt="パソコンノウハウ" width="190" height="250" /></td> <td class="c"><img src="img/txt21.gif" alt="" width="168" height="24" /><br /> </td> </tr> <tr> <td class="d"><img src="img/9.gif" alt="パソコンノウハウ" width="41" height="63" /> <img src="img/ten.gif" alt="パソコンノウハウ" width="21" height="63" /><img src="img/8.gif" alt="パソコンノウハウ" width="41" height="63" /> <img src="img/0.gif" alt="パソコンノウハウ" width="41" height="63" /><img src="img/0.gif" alt="パソコンノウハウ" width="41" height="63" /> <img src="img/en.gif" alt="パソコンノウハウ" width="131" height="63" /></td> </tr> <tr> <td class="e"><a href="http://www."><img src="img/enter_off.gif" alt="" width="349" height="83" /></a></td> </tr> ----------------------------------------------------------------ここに横の罫線を引きたいのですが記述方法が分かりません。 <tr> <td rowspan="3" class="b"><img src="img/wg.jpg" alt="パソコンノウハウ" width="190" height="250" /></td> <td class="c"><img src="img/txt22.gif" alt="" width="103" height="23" /><br /> </td> </tr> <tr> <td class="d"><img src="img/1.gif" alt="パソコンノウハウ" width="41" height="63" /><img src="img/0.gif" alt="パソコンノウハウ" width="41" height="63" /> <img src="img/ten.gif" alt="パソコンノウハウ" width="21" height="63" /><img src="img/8.gif" alt="パソコンノウハウ" width="41" height="63" /> <img src="img/0.gif" alt="パソコンノウハウ" width="41" height="63" /><img src="img/0.gif" alt="パソコンノウハウ" width="41" height="63" /> <img src="img/en.gif" alt="パソコンノウハウ" width="131" height="63" /> </td> </tr> <tr> <td class="e"><a href="http://"><img src="img/enter_off.gif" alt="" width="349" height="83" /></a></td> </tr> </table>

    • ベストアンサー
    • HTML
  • このテーブルタグの中の色を白にするには

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE></TITLE> <STYLE type="text/css"> <!-- .border{ font-size : 1pt; } --> </STYLE> </HEAD> <BODY> <TABLE border="0" cellpadding="0" cellspacing="0"> <TBODY> <TR> <TD colspan="2" rowspan="2"><IMG src="images/001_base_1.gif" width="20" height="20" border="0"></TD> <TD height="2" bgcolor="#000000"><SPAN class="border">o</SPAN></TD> <TD colspan="2" rowspan="2"><IMG src="images/001_base_2.gif" width="20" height="20" border="0"></TD> </TR> <TR> <TD height="18"></TD> </TR> <TR> <TD width="2" bgcolor="#000000"><BR> </TD> <TD width="18"></TD> <TD>ここに内容を書きます(画像<A href="images/001_base_1.gif">1</A>・<A href="images/001_base_2.gif">2</A>・<A href="images/001_base_3.gif">3</A>・<A href="images/001_base_4.gif">4</A>)</TD> <TD width="18"></TD> <TD width="2" bgcolor="#000000"><BR> </TD> </TR> <TR> <TD colspan="2" rowspan="2"><IMG src="images/001_base_4.gif" width="20" height="20" border="0"></TD> <TD height="18"></TD> <TD rowspan="2" colspan="2"><IMG src="images/001_base_3.gif" width="20" height="20" border="0"></TD> </TR> <TR> <TD height="2" bgcolor="#000000"><SPAN class="border">o</SPAN></TD> </TR> </TBODY> </TABLE> </BODY> </HTML> 現在はテーブルの内側の色が透明色(背景の色)になっています。 これを透明でなく白にする方法をおしえてください!

  • HTMLについて

    現在HTMLを勉強しています そこで画像の配置についてわからないところがあるので教えてください 添付した画像のようにしたいのですが緑の画像がかなりしたになってしまいます どうすればいいでしょうか? コードとCSSは HTML <body> ~~~省略~~~ <div class="menu_block"> <table class="menu_left"> <tr> <td class="photo"><img src="img/siri-zu.gif" style="margin-top:80px;"></td> </tr> <tr> <td class="photo"><img src="img/sekkenn.gif" style="margin-top:20px;"></td> </tr> <tr> <td class="photo"><img src="img/oiru.gif"style="margin-top:10px;"></td> </tr> <tr> <td class="photo"><img src="img/jeru.gif"style="margin-top:10px;"></td> </tr> <tr> <td class="photo"><img src="img/set.gif"style="margin-top:10px;"></td> </tr> <tr> <td class="photo"><img src="img/mini.gif"style="margin-top:10px;"></td> </tr> </table> <img src="img/3.gif" height="300" alt="3STEP" class="menu_right"> <img src="img/rank.jpg" style="margin-top: 80px ;" class="ranking"> <img src="img/test.jpg" width="600" height="200" style="margin-left: 200px;" class="rebyu"> </div> </div> </body> CSS @charset "UTF-8"; h1 { margin: 30px 0 30px 0; padding: 0 0 0 0; line-height: 0; text-align: center; } #wrapper { width: 1050px; margin: 0 auto 0 auto; } .menu_block { overflow: hidden; zoom: 1; } .menu_left { float: left; margin-right: 20px; } .menu_right { float: left; margin-top: 80px; margin-left: 20px; } .ranking { float: left; margin-left: 20px; } .rebyu { float: left; margin-top: 10px; } です 赤の真下に緑が来るというのが理想です

    • ベストアンサー
    • HTML
  • htmlのテーブルタグについて

    <table border> <td class="timg"><a href="img/zyuni1.gif" class="thickbox" title="文字"><a href="http://www.yahoo.co.jp"><img src="img/zyuni1.gif" alt="" /></a></a> <td class="tdesc"> <a href="http://***" target="_blank" style="color:#0000ff;"><img src="http://hbb.afl.rakuten.co.jp/hgb/?pc=http%3a%2f%2fthumbnail.image.rakuten.co.jp%2f%400_mall%2fangfa%2fcabinet%2f2012item%2f201204_oily_reg2.jpg%3f_ex%3d300x300&m=http%3a%2f%2fthumbnail.image.rakuten.co.jp%2f%400_mall%2fangfa%2fcabinet%2f2012item%2f201204_oily_reg2.jpg%3f_ex%3d80x80" Align="left"><p>文字 <Br clear="left"><br><br><br> <img src="./img/attention.png" alt="" /><a href="http://www.yahoo.co.jp"><span style="font-size:18px;"><strong>文字 </p> <br /> <p><a href="#">文字</a></p> </td></tr> <tr> <th>文字</th> <th>文字</th> <tr> <td>文字円</td> <td>文字円</td> </td></tr></table> </table> 今テーブルタグで、例なのですが・・・。 このようにして、打っております。 しかしながら、非常に・・・テーブルが大きすぎると感じ、 もう少し小さなテーブルが作れないものかと思います。 どこをどのようにすれば、テーブルを縦下を小さくできるのでしょうか? (横幅に関してはこれで問題はないのですが・・・。) 教えてください!お願いします。

  • ↓を詳しくかきました。

    たびたびすいません。今回は過去記事がすべて消えてしまいました。携帯からはみれます。投稿してみると題名は掲載されますが、記事は掲載されません。たぶんHTMLをしらないうちに触っていたんだと思います。たぶん下記の人気ブログランキング参加中当たりを触ってしまいました。今までもこのバナーを使って問題はありませんでした。たぶんEnterのボタンをどこか押していたんだと思います。 どなたか詳しい方教えて下さい。長文すいません。 <br> <div align="right"><{$category_link[entry]}> <span class="etText">/</span> <a href="<{$entry_url[entry]}>"><span class="etTime"><{$entrytime[entry]}></span></a></div> <br> <div align="center"><{$image}></div> <div class="Posi"><span class="etBody"><{$thumbnail[entry]}><br>人気ブログランキング参加中 クリックお願いします。 <a href="http://blog.with2.net/link.php?490511"><img src="http://blog.with2.net/img/banner2.gif"></a> <br> </span></div> <div align="right"><span class="etCommentLink">コメント ( <{$comment_link[entry]}> )</span><span class="etText"> | </span><span class="etTBLink">Trackback ( <{$trackback_link[entry]}> )</span> </div> <div><img src="/images/clear.gif" width="15" height="15" alt="" /></div> </td> </tr> </table> </td> </tr>

  • Mozillaで隙間を表示させなくするには?

    以下のソースを見てください。 <table> <tr> <td bgcolor="red"> <table align="center" border="0" cellpadding="0" cellspacing="0" width="100%"> <tbody> <tr> <td><img src="1.gif"></td> <td><img src="2.gif" width="100%"></td> <td><img src="3.gif"></td></tr></tbody></table> <table class="side" style="border-left: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-bottom: 1px solid rgb(204, 204, 204);" border="0" cellpadding="0" cellspacing="0" width="100%"> <tbody> <tr> <td align="left" bgcolor="#ffffff"> メニュー </td> </tr></tbody></table> </td> </tr> </table> サイトの横に設置するメニューバーの作成を行っています。バックグラウンドの色は赤でメニュー欄内を白に変換しています。 IEではメニュー欄の周りの囲んでいる線との間に隙間ができずに表示されるのですがMozillaだと隙間が表示され隙間部分に赤色が表示されます。 Mozillaでも隙間を表示させないようにするにはどうしたらいいのでしょうか?

    • ベストアンサー
    • HTML
  • このHTMLは間違えですか?

    テーブルタグにおいて、 <table> <tr><td><img src="ok.gif"></td></tr> <tr><td><img src="no.gif"></td></tr> </table> <table> <tr><td><img src="ok.gif"></td></tr> <img src="no.gif"> </table> この2つの構文はほぼ同じ表示になります。(細かい違いを気にしなければ) 下記は間違えでしょうが、使ってもかまわないということでしょうか?

    • ベストアンサー
    • HTML

専門家に質問してみよう