プロが教えるわが家の防犯対策術!

phpを使い始めて間もないのですがファイルの最終更新日付を表示させたいと思い、やっているのですが、 syntax error, unexpected 'echo' (T_ECHO) in C:\Users\admin\Desktop\web\test\new_design\index4.php on line 19
とでて、どうにもできない状態です。
19行目周辺をどう直したらいいのでしょうか?
一応ソースですが、
<html>
<meta http-equiv="Content-Type" content="text/html;charset=Shift_JIS"/>

<head>
<title>Tokei with Photo。</title>

このページは自宅サーバーを利用しています。</br>
<?php

//ファイル
$top_url = "index.htm";
//更新時刻をUNIXタイムスタンプ値で取得
$get_unix = filemtime($top_url);

//UNIXタイムスタンプ値を変換
$get_date = date("Y/m/d",$get_unix);
date_default_timezone_set(Asia/Tokyo) //表示
echo "Last Update ";
echo $get_date;

?>
</head>
</html>
18行目のタイムゾーン指定は
無いと、表示は一応成功するのですが
日付表示の上に、date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in C:\Users\admin\Desktop\web\test\new_design\index4.php on line 17
と、エラーが出てしまうので、対処として指定しています。(php.iniで指定はしているのですが)

A 回答 (2件)

エラーメッセージの意味、理解していますか?



syntax error,
文法のエラー

unexpected 'echo' (T_ECHO)
期待されない「echo」

ということで、 『本来 echo と書けない箇所(echoが期待されない箇所)に echo がある、という文法上の間違い」ということです。

この「unexpected 〜」のエラーが出るときにチェックするべき点は次の3つです。

(1) 単純に、書き間違いをしていないか?
(2) 使い方を勘違いしていないか?
 例えば、echo は関数ではないので、式の途中に書いたりはできません
(3) 括弧、引用符、 セミコロン等の忘れ/余分はないか?
 (1)に近いですが。
 括弧等を間違えると、期待とは違う文法解釈されて、「正しい」箇所が「間違い」と判定されることがあります。
 この場合、エラーメッセージにある行番号や「期待されないXX(= XX がいらない)」と、真因が違うことがよくあります。
 そのため、メッセージから真因を考える必要があります。
 例) unexpected '}' だったら、次の2つが考えられます
   ・ } が多い(単純な書き間違い)
   ・ 上の方で { が抜けているために、ここで「 } が多い」と判定されてしまった(真因はメッセージとは別)




さて。
echo が多い、というエラーですが、 18行目に echo はありません。
次の行の echo がありますが、 これは「正しい」ものです( 少なくとも、あなたはそう思っているはずです)
ということは、 「echo が余分」なのではなく、「なにかが足りなくて、『echoが余分』と解釈されてしまっている」と考えられます。

そういう視点で
date_default_timezone_set(Asia/Tokyo) //表示
を見ると、確かに足りないものがあります。



また、これを解決しても、間違いがあります。
・マニュアルをよく読みましょう.
http://php.net/manual/ja/function.date-default-t …
・(Asia/Tokyo) とは、どういう意味になるかわかりますか?
・何の目的で date_default_timezone_set を使っているのか、考えましょう。
 プログラムは、実行した順序で内容が変わります。
    • good
    • 1

date_default_timezone_set(Asia/Tokyo) のあとにセミコロンが無いのが原因です。

    • good
    • 6

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています