saity先生の第14回目のスケジュールを読み込むで? - PHPプロ!Q&A掲示板

2032

  • 0P

saity先生の第14回目のスケジュールを読み込むで?

質問日時 / 2009年5月12日 21:56    回答数 / 2件

Questioner:  bunn3  このエントリーをはてなブックマークに追加 

キーワード / substr    intval   

HTMLのフォームにスケジュールの詳細情報を表示するようにしよう~
ってところで「substr」関数を使ってますよね?
そのコードの意味がいくら考えてもわかりません。

$year = substr($schedule_date, 0, 4); 
$month = substr($schedule_date, 4, 2); 
$day = substr($schedule_date, 6, 2); 

?> 
<form action="schedule_edit.php" method="post">  
  <input type="text" name="year" id="schedule-year"   
value="<?php print(htmlspecialchars($year, ENT_QUOTES)); ?>" />  
  <label for="schedule-year" id="label-year">年</label>  
  <input type="text" name="month" id="schedule-month"   
value="<?php print(htmlspecialchars($month, ENT_QUOTES)); ?>" />  
  <label for="schedule-month" id="label-month">月</label>  
  <input type="text" name="day" id="schedule-day"    
value="<?php print(htmlspecialchars($day, ENT_QUOTES)); ?>" />  
  <label for="schedule-day" id="label-day">日</label>  
  <dl>  
    <dt><label for="schedule-title" id="label-title">タイトル </label></dt>  
    <dd><input type="text" name="title" id="schedule-title"   
value="<?php print(htmlspecialchars($title, ENT_QUOTES)); ?>" /> 
  </dd>  
    <dt><label for="schedule-body" id="labe-body">内容</label></dt>  
    <dd><textarea name="body" id="schedule-body">  
    <?php print(htmlspecialchars($body, ENT_QUOTES)); ?></textarea> 
  </dd>  
  </dl>  
  <input type="submit" name="regist" id="regist" value="更新する" />  
</form> 

substrはマニュアルを見て少しは理解してますが、$schedule_date, 0, 4 ってとこの部分がどこを指してどうしてそうなるのかがわかりません。。。どなたか、教えてもらいませんか?お願いします。

この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。



ツリー一覧

┗A01atsushi正確にコードを読んでないので合っているかどうかは分
 ┗A01-1bunn3ありがとうございます。 やっと意味がわかりました^

回答一覧

並び替え:

A01
answereratsushi [5月12日 23:19]

正確にコードを読んでないので合っているかどうかは分かりませんが、おそらく$schedule_dateには年月日が8文字の数値で入っているものだと思います。今日だったら 「20090512」 みたいな。

で、この文字列から「年」、「月」、「日」を取り出すためには、何文字目から何文字分だけを切り出す、という処理が必要になるのですが、この処理にsubstr()を使っています。

$schedule_date = '20090512'; だとしたら
$year = substr($schedule_date, 0, 4); は0文字目から4文字分、「2009」をとりだし、
$month = substr($schedule_date, 4, 2); は4文字目から2文字分、「05」を取り出し、
$day = substr($schedule_date, 6, 2); は6文字目から2文字分、「12」を取り出し・・・

という感じになるかと。

この意見に回答する

ツリーへ TOPへ

A01-1
replyerbunn3 [5月14日 21:32]

ありがとうございます。
やっと意味がわかりました^^


$schedule_date = sprintf("%04d%02d%02d",$year,$month,$day);
っていうコードだったんでどこから数えるかわかんなくて、数字を置き換えてるんですね~。

ありがとうございました。

この意見に回答する

ツリーへ TOPへ

<<質問一覧へ



Pick Up Q&A

Q
PHPのHTML埋め込み記述について
 このエントリーをはてなブックマークに追加 
A
$_POST["data"] == "男" ? $val = "checked" : $val = "" ; の意味は以下と同じです。 if($_POST["data"] == "男"){ $val = "checked; } e...

>>続きを読む

kende様のご指摘通り、三項演算子を使用する際には、コードの複雑度などを考慮する必要がありますね。書きやすさと共に可読性も追求したいところですね。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)