• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:改行されないカレンダー(PHP))

改行されないカレンダー(PHP)

このQ&Aのポイント
  • 下記のコードでカレンダーを作りましたが、日付が横一列に並んだ奇妙なカレンダーになってしまいます。
  • 参考文献と比べて、同じコードを記述しているように思いますが、なぜ改行されないのか、分かりません。
  • ご存知の方、アドバイスよろしくお願いします。

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

  • ベストアンサー
  • bm_hiro
  • ベストアンサー率51% (200/388)
回答No.5

>>3の補足に対しての追記になります。 > 一度目は、「560123456012345601234560123」と表示されました。 それは、「2013年」2月のカレンダーではないですか? 日数が28日しかなく、金曜日から始まってる月は ここ最近では 今年のものかと思います。 まぁ、本題とは関係ないので 正直 それほど気にすることでもないのですけど。 > Notice: Undefined variable: hoge これは、俺の説明不足です。 一番 最初の行に ↓を追加すると ↑コレは出なくなるはずです。 <?php $hoge = ""; ?>

dradra33
質問者

お礼

bm_hiroさま たびたびのご回答ありがとうございます。 <?php $hoge = ""; ?> を最初に入力したら、 Notice: Undefined variable: hoge は、出なくなりました。 いろいろとアドバイス助かります。

すると、全ての回答が全文表示されます。

その他の回答 (4)

  • bm_hiro
  • ベストアンサー率51% (200/388)
回答No.4

なんとなく気になったので、一応追記。 >>3の回答の<tr>の話に関しては PHP部分の事であり、その他のHTML部分に関しては、その限りではありません。 ついでに、もう一つ。 正常に表示する環境でも、↓の「6」を「7」という、通常ありえない数字にすると簡単に現象が再現できます。 if (date("w", mktime(0, 0, 0, $m, $d, $y)) == 6) {

dradra33
質問者

お礼

bm_hiroさま 追記ありがとうございます。 こちらも参考にさせていただきます。

すると、全ての回答が全文表示されます。
  • bm_hiro
  • ベストアンサー率51% (200/388)
回答No.3

『現象には必ず理由がある』 「ガリレオ」絶賛放送中。は、置いといて。 どうやれば、この現象が発生するのか確認してみました。 chrome , Firefox , IE9で確認。 実は「<TR>の開始タグ、終了タグ どっちか」があれば、ちゃんと改行されて表として表示されました。 なので、「両方 存在していない時」のみ 提示した画像のような画面になります。 となると、そちらの環境では、↓の行が 正常に動いていないと考えられます。 > if (date("w", mktime(0, 0, 0, $m, $d, $y)) == 6) { その結果、「<TR>の開始タグ、終了タグのどちらも出力されず、横一列に表示されている」と思われます。 ↑↑の行の手前に ↓ 追加して、 $hoge .= date("w", mktime(0, 0, 0, $m, $d, $y)); 一番最後の行に ↓を追加し、出力してみて、 <?php print $hoge; ?> ちゃんと、「34560123456012345601234560123」と表示されるか確認してみてください。 もし、ちゃんと↑このように表示されるとしたら、他の理由を考えなきゃいけません。 もし、↑↑のように表示されないとしたら、どのように表示されるか補足お願いします。

dradra33
質問者

お礼

bm_hiroさま ご回答ありがとうございます。 No.1さまへのお礼の通り、 どういうわけだか、知らないうちに 解決してしまいました。 〉↑↑の行の手前に ↓ 追加して、 $hoge .= date("w", mktime(0, 0, 0, $m, $d, $y)); 〉一番最後の行に ↓を追加し、出力してみて、 <?php print $hoge; ?> を行うと、表示は改行されたカレンダー表示の上に メッセージが出力されます。 Notice: Undefined variable: hoge in C:\xampp\htdocs\php1st\test4.php on line 54 「34560123456012345601234560123」は 表示されません。

dradra33
質問者

補足

ただし、bm_hiroさまのご回答を見て 一度目は、「560123456012345601234560123」と表示されました。 何でだろう?と、コードを何回かいじっているうちに、 下記のお礼で申し上げた事象になりました。

すると、全ての回答が全文表示されます。
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

ソースをコピペする限り普通に表示されますね 改行されないという状態のブラウザから、 「ソースを表示」で<tr>・・・</tr>がきちんと吐き出されているか かくにんしてみてはいかがでしょうか?

dradra33
質問者

お礼

yambejpさま ご回答ありがとうございます。 No.1さまへのお礼の通り、 どういうわけだか、知らないうちに 解決してしまいました。 そのとき吐き出されたコードは 以下のようになります。 ●吐き出されたコード <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>カレンダー</title> </head> <table border="1"> <tr> <th>日</th> <th>月</th> <th>火</th> <th>水</th> <th>木</th> <th>金</th> <th>土</th> </tr> <tr> <td> </td><td> </td><td> </td><td> </td><td> </td><td>1</td><td>2</td></tr><tr><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td></tr><tr><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td></tr><tr><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td></tr><tr><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td> </td><td> </td></tr> </table>

すると、全ての回答が全文表示されます。
  • pa_cotta
  • ベストアンサー率43% (25/58)
回答No.1

ソースを見る限り問題ないですし、実際に試してみても正しく<tr>...</tr>で表組みされたものが出ますね…。 ブラウザ依存の可能性もありますが、別なブラウザ(ChromeとかFirefoxとか)で表示してみても同じ現象になるでしょうか?

dradra33
質問者

お礼

pa_cottaさま ご回答ありがというございます。 今日になって確認してみたら、 どういうわけだか、正常に表示されます。 ふだんはChromeを使っています。 設定→ネットワーク→プロキシ設定の変更 →LANの設定→プロキシサーバー について、よくオンオフを繰り返すので、 何かの拍子で、正しく<tr>...</tr>の 表示ができるようになったのかもしれません。

すると、全ての回答が全文表示されます。

関連するQ&A