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

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

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

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

Q&A

解決済

3回答

26301閲覧

【PHP】MySQL内容のCSVファイル化

tajix_japan

総合スコア132

PHP

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

0グッド

0クリップ

投稿2016/11/03 13:46

下記のPHPで MySQLのstockdata_allテーブル上にある株価データをPHP上で下記のように表示させることが可能です。

【code_data.php】

<?php require_once('config.php'); ?> <?php mysql_select_db($database_stock, $stock); $query_stockup = sprintf("SELECT * FROM stockdata_all WHERE code='5101-T' ORDER BY date DESC ", GetSQLValueString($colname_stockup, "text")); $stockup = mysql_query($query_stockup, $stock) or die(mysql_error()); $row_stockup = mysql_fetch_assoc($stockup); ?> <?php do { ?> <?php echo $row_stockup['date2']; ?>,<?php echo $row_stockup['hajimene']; ?>,<?php echo $row_stockup['takane']; ?>,<?php echo $row_stockup['yasune']; ?>,<?php echo $row_stockup['owarine']; ?>,<?php echo $row_stockup['dekidaka']; ?><BR> <?php } while ($row_stockup = mysql_fetch_assoc($stockup)); ?>

PHPをブラウザで見た時の表示
01-Nov-16,1819,1819,1796,1812,656000
31-Oct-16,1825,1830,1792,1824,801000
28-Oct-16,1823,1845,1815,1839,779600
27-Oct-16,1817,1827,1788,1792,590500
26-Oct-16,1816,1834,1802,1811,479800
25-Oct-16,1784,1832,1783,1825,716900
24-Oct-16,1776,1782,1769,1778,502000
21-Oct-16,1773,1787,1763,1776,670700
20-Oct-16,1698,1751,1692,1750,903300
19-Oct-16,1687,1716,1679,1714,483900
18-Oct-16,1695,1700,1676,1697,460200

上記の【code_data.php】の情報をCSVファイルに書き出そうと考えました。

【file_get_contents.php】

<?php $csv = file_get_contents("http://hoge.com/code_data.php"); file_put_contents('./data/stock.csv',$csv); ?>

上記だとCSVファイルには、出来高の数字のあとに<BR>がくっついた状態でそのまま表示されてしまいます。

【stock.csv】
01-Nov-16,1819,1819,1796,1812,656000<BR>
31-Oct-16,1825,1830,1792,1824,801000<BR>
28-Oct-16,1823,1845,1815,1839,779600<BR>
27-Oct-16,1817,1827,1788,1792,590500<BR>
26-Oct-16,1816,1834,1802,1811,479800<BR>
25-Oct-16,1784,1832,1783,1825,716900<BR>
24-Oct-16,1776,1782,1769,1778,502000<BR>
21-Oct-16,1773,1787,1763,1776,670700<BR>
20-Oct-16,1698,1751,1692,1750,903300<BR>
19-Oct-16,1687,1716,1679,1714,483900<BR>
18-Oct-16,1695,1700,1676,1697,460200<BR>

<BR>を\nに変えても同じようにくっついてきます。
【stock.csv】
01-Nov-16,1819,1819,1796,1812,656000\n
31-Oct-16,1825,1830,1792,1824,801000\n
28-Oct-16,1823,1845,1815,1839,779600\n
27-Oct-16,1817,1827,1788,1792,590500\n
26-Oct-16,1816,1834,1802,1811,479800\n
25-Oct-16,1784,1832,1783,1825,716900\n
24-Oct-16,1776,1782,1769,1778,502000\n
21-Oct-16,1773,1787,1763,1776,670700\n
20-Oct-16,1698,1751,1692,1750,903300\n
19-Oct-16,1687,1716,1679,1714,483900\n
18-Oct-16,1695,1700,1676,1697,460200\n

何もつけないと、下記のように改行されないまま1行表示になります。
【stock.csv】
01-Nov-16,1819,1819,1796,1812,65600031-Oct-16,1825,1830,1792,1824,80100028-Oct-16,1823,1845,1815,1839,77960027-Oct-16,1817,1827,1788,1792,59050026-Oct-16,1816,1834,1802,1811,47980025-Oct-16,1784,1832,1783,1825,71690024-Oct-16,1776,1782,1769,1778,50200021-Oct-16,1773,1787,1763,1776,67070020-Oct-16,1698,1751,1692,1750,90330019-Oct-16,1687,1716,1679,1714,48390018-Oct-16,1695,1700,1676,1697,460200\n

やりたい事

【stock.csv】
について、余分な文字やスペースながなく「データのみで改行されたCSVファイル」としてダウンロードしたいです。

01-Nov-16,1819,1819,1796,1812,656000
31-Oct-16,1825,1830,1792,1824,801000
28-Oct-16,1823,1845,1815,1839,779600
27-Oct-16,1817,1827,1788,1792,590500
26-Oct-16,1816,1834,1802,1811,479800
25-Oct-16,1784,1832,1783,1825,716900
24-Oct-16,1776,1782,1769,1778,502000
21-Oct-16,1773,1787,1763,1776,670700
20-Oct-16,1698,1751,1692,1750,903300
19-Oct-16,1687,1716,1679,1714,483900
18-Oct-16,1695,1700,1676,1697,460200

どうすればいいかご教示戴きたくお願いいたします。

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

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

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

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

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

yodel

2016/11/03 17:36

ソースコード部分は、「```PHP コード ```」でコード表記して頂けると読みやすくて助かります。
guest

回答3

0

自己解決

下記で自己解決いたしました。

<?php do { ?> <?php echo "".$row_stockup['date2'].",".$row_stockup['hajimene'].",".$row_stockup['takane'].",".$row_stockup['yasune'].",".$row_stockup['owarine'].",".$row_stockup['dekidaka']."\r\n"; ?>

投稿2016/11/04 10:55

tajix_japan

総合スコア132

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

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

0

01-Nov-16,1819,1819,1796,1812,656000\n ```ではなく、 ```ここに言語を入力 01-Nov-16,1819,1819,1796,1812,656000\r\n ```としてみてはいかがでしょう。 もちろん、改行コードを加える際にはダブルクォーテーションで囲うのも忘れずに。 ただ、どのような環境で確認しているかは分かりませんが、OSや使っているソフトによっては正しく改行が確認できない場合もありますよ。 CSSの正当性とは無関係ですので問題はありませんが。

投稿2016/11/04 00:30

nobinobi

総合スコア199

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

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

tajix_japan

2016/11/04 10:54

有難うございます。 ご教示戴いた方法ではどうもうまくいきませんでした。 ご教示が間違っているわけではなく当方の理解が足りないのだと思います。 下記で自己解決することが出来ました。 お時間を取っていただき本当にありがとうございました。 深く御礼申し上げます。 <?php do { ?> <?php echo "".$row_stockup['date2'].",".$row_stockup['hajimene'].",".$row_stockup['takane'].",".$row_stockup['yasune'].",".$row_stockup['owarine'].",".$row_stockup['dekidaka']."\r\n"; ?>
guest

0

stok.csv表示時には<PRE></PRE>で囲んでやると改行コードがブラウザ表示でも有効になります。

投稿2016/11/03 19:41

km668

総合スコア65

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

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

tajix_japan

2016/11/04 10:54

有難うございます。 ご教示戴いた方法ではどうもうまくいきませんでした。 ご教示が間違っているわけではなく当方の理解が足りないのだと思います。 下記で自己解決することが出来ました。 お時間を取っていただき本当にありがとうございました。 深く御礼申し上げます。 <?php do { ?> <?php echo "".$row_stockup['date2'].",".$row_stockup['hajimene'].",".$row_stockup['takane'].",".$row_stockup['yasune'].",".$row_stockup['owarine'].",".$row_stockup['dekidaka']."\r\n"; ?>
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問