10週間ウェブ開発講座

第九週

PHPマニュアルを読む練習をします。

基本的な読み方

最も頻繁に参照するのは「関数リファレンス」の項目です。

また、本講座を第九週まで全て受けてきた方は、次の項目を読むことでより理解を深めることができます。

  • はじめに
  • 言語リファレンス => 型
  • 言語リファレンス => 制御構造
  • 関数リファレンス => データベース関連 => PDO
  • 関数リファレンス => セッション関連 => セッション処理

関数リファレンス

次の処理を行うPHP関数を調べ、実際に動作を確かめてください。

(1)文字列の長さ取得

  • 問:"When a wise man gives thee better counsel,give me mine again. I would ha' none but knaves use it,since a fool gives it." という文字列の長さ(= 文字数)を調べるプログラムを書いてください。
  • ヒント:関数リファレンス => テキスト処理 => 文字列 => String 関数

(2)文字列の位置を取得

  • 問:"When a wise man gives thee better counsel,give me mine again. I would ha' none but knaves use it,since a fool gives it." という文字列の中で、"use" という文字列が何文字目に現れるかを調べるプログラムを書いてください。
  • ヒント:関数リファレンス => テキスト処理 => 文字列 => String 関数

(3)文字列の部分文字列を取得

  • 問:"When a wise man gives thee better counsel,give me mine again. I would ha' none but knaves use it,since a fool gives it." という文字列の中で、"use" という文字列から先の文字列を抜き出してください(抜き出される文字列は"use it,since a fool gives it."になります)。
  • ヒント:関数リファレンス => テキスト処理 => 文字列 => String 関数

(4)日本語文字列の長さ取得

日本語文字列はUTF-8であると仮定してください。

  • 問:"確かに僕がほめているつもりでも、本人は逆に叱られていると思うこともあったように思います。これでは本当に逆効果。というわけで早速、周りの人にほめて欲しい言葉をいろいろヒアリングしたところ、早速5,6人からほめて欲しい言葉リストをもらいました。もっともっとほめて欲しい言葉を募集しています。そんな言葉はメッセージかメールで僕にまで。"という文字列の長さ(=文字数)を調べるプログラムを書いてください。
  • ヒント:関数リファレンス => 自然言語および文字エンコーディング => マルチバイト文字列 => マルチバイト文字列 関数

(5)長い日本語文字列の末尾を"..."と表示

  • 問:"確かに僕がほめているつもりでも、本人は逆に叱られていると思うこともあったように思います。これでは本当に逆効果。というわけで早速、周りの人にほめて欲しい言葉をいろいろヒアリングしたところ、早速5,6人からほめて欲しい言葉リストをもらいました。もっともっとほめて欲しい言葉を募集しています。そんな言葉はメッセージかメールで僕にまで。"という文字列の10文字目以降を"..."と表示するプログラムを書いてください(表示される文字列は"確かに僕がほめている..."になります)。
  • ヒント:関数リファレンス => 自然言語および文字エンコーディング => マルチバイト文字列 => マルチバイト文字列 関数

(6)改行をbrタグへ変換

  • 問:改行を含む文字列から、改行文字の前に"<br />"を挿入するプログラムを書いてください。

なお、改行を含む文字列$strは、次のようにして作ることができます。

$str = "
これは
改行を
含む
文字列
です!";
  • ヒント:関数リファレンス => テキスト処理 => 文字列 => String 関数

(7)日本語文字列をurlエンコード

  • 問:"ほめている"という文字列をurlエンコードするプログラムを書いてください。
  • ヒント:関数リファレンス => その他の基本モジュール => URLs => URL 関数

(8)時刻の表示

  • 問1: 現在時刻を、"YYYY/MM/DD HH:MM:SS"の形式で表示するプログラムを書いてください。
  • 問2: 現在の日付を、"YYYY年MM月DD日"の形式で表示するプログラムを書いてください。
  • ヒント:関数リファレンス => カレンダーおよびイベント関連 => 日付・時刻 => 日付・時刻 関数

(9)リダイレクトの実現

  • 問:http://y-mahata.s-tanno.com/redirect.php を開くと http://s-tanno.com/ にリダイレクトするようなページを作成してください("y-mahata"は適宜置き換えてください)。
  • ヒント:関数リファレンス => その他のサービス => ネットワーク => ネットワーク 関数

(10)メールの送信

  • 問:xxx@example.com にメールを飛ばすプログラムを書いてください(xxx@example.com は適宜あなたのメールアドレスに置き換えてください)。
  • ヒント:関数リファレンス => メール関連 => メール => メール 関数

なお、日本語でメールを送信するためには、もう一手間かける必要があります。mb_send_mailでPHPマニュアルを検索してください。

(11)リクエスト元情報の確認

  • 問:ページ閲覧者に関する次の情報を表示してください。
    • ページ閲覧者のIPアドレス
    • ページ閲覧者のユーザエージェント
  • ヒント:言語リファレンス => 定義済の変数 => $_SERVER

宿題

本講座(1)-(11)までの問に答えてください。
また、答えた内容を確認できるページを作成し、http://y-mahata.s-tanno.com/9th_week_homework.html で参照できるようにしてください。

参考資料


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-05-27 (水) 11:36:11 (466d)