Chapter01 PHPの基本

概要と目標 PHPで出来ることを知り、
はじめてのPHPを書いてみる。

PHPの基本を学習し、画面に文字列を出力できるようになりましょう。

今回のゴール

RERUN

サーバーサイドプログラミングとは サーバ側で処理を行うプログラムの総称。
それが、サーバーサイドプログラミング。

サーバーサイドプログラミングは掲示板やSNSショッピングサイトブログなど
アクセスする度に違う内容になる可能性があるサイトで利用されている。

ブラウザ

ブラウザ

WEBサーバー

WEBサーバ

プログラム言語

PHP
  1. ブラウザがWEBサーバに対して 10 + 10 = ? とリクエスト
  2. WEBサーバが外部プログラミングに対して 10 + 10 = ? とリクエスト
  3. 外部プログラミングがWEBサーバに対して 20 とレスポンス
  4. WEBサーバがブラウザに対して 20 とレスポンス

CGI (Common Gateway Interface)
WEBサーバと外部プログラムを連動して動的なWEBサイトを構築する仕組み

クライアントサイドとサーバーサイド クライアント側かサーバー側か、
どちらが適しているか見極める。

WEBシステムは「クライアント側」か、「サーバー側」か
どちらが適しているか見極めることが重要。

Client Side

  • JS
  • AS

Server Side

  • Ruby
  • Perl
  • PHP
Ajax (Asynchronous JavaScript + XML)
これらの技術を組み合わせて非同期通信を行う仕組み

PHPとは WEBアプリケーションに特化した、
サーバーサイドスクリプト。

PHPピーエイチピーHypertextハイパーテキスト Preprocessorプリプロセッサーの略で、動的にHTMLを生成する
サーバーサイドプログラムの言語。

PHPの特徴

  • 比較的習得が容易
  • データベースとの連動が容易
  • WEBアプリケーションに特化
  • HTMLと混在して記述できる
Rasmusラスマス Lerdorfラードフ
Rasmus Lerdorf August 2014 (cropped)

PHPで出来ること フォームからデータを受け取ったり、
データベースと連携したり。

PHPは、主にユーザーから送信されたデータを活用する。受け取ったデータは、
画面に表示したり、データーベースに格納したり、メールを送ったりできる。

PHPで出来ること
  1. 入力フォームを作成 入力フォームを作成
  2. フォームにデータを入力 フォームにデータを入力
  3. サーバーにデータを送信 Webサーバにデータを送信
  4. PHPで確認画面を作成 データを表示するPHPファイルを作成しておく
  5. PHPプログラムが処理を実行 PHPプログラムが処理を実行
  6. PHPプログラムが処理を実行 受け取ったデータでHTMLを生成
  7. ブラウザに生成したHTMLを送信 ブラウザに生成したHTMLを送信
  8. ブラウザがHTMLを表示 ブラウザがそのHTMLを表示
  9. データベースとの連動 他にも、データベースとの連動したり
  10. メールを送信 メールを送信したり
  11. HTMLを生成 HTMLを生成したりできる


ローカル開発環境 サーバーサイドの開発には、
サーバーの環境構築が必要。

サーバーサイドのプログラミング開発には、
サーバーの環境を揃えた、ローカル開発環境が必要になる。

WEBサーバ

WEBサーバ

WEBとしての機能を提供するサーバ。
(代表ソフト:Apache、Nginx)

データベース

データベース

データを保存するための仕組み。
(代表ソフト:MySQL)

PHP

プログラミング言語

動的なWEBサイトを構築する仕組み。
(代表ソフト:PHP、Perlなど)

XAMPP (Apache MySQL PHP Perl)
Windowsで人気の開発に必要なソフトまとめた無料のパッケージ (仮想サーバー)
https://www.apachefriends.org/jp/
MAMP (My Apache MySQL PHP)
Macで人気の開発に必要なソフトまとめた無料のパッケージ (仮想サーバー)
https://www.mamp.info/en/

開発手順 ローカルのWEBサーバに保存。
URLでアクセスして確認。

PHPはHTTPによる通信を行う必要がある。 従ってローカルの仮想WEBサーバ内に保存し、
URLでアクセスしなければ、PHPは動作しない。

  1. 「XAMPP Control Panel」または、「MAMP」を起動する
  2. 必要なツールを起動する (Apache、MySQL)
  3. PHPファイルを作成
  4. WEBサーバーの公開用フォルダ内に保存
    • XAMPPの場合:「コンピューター」 → 「C」 → 「XAMPP」 → 「htdocs」
    • MAMPの場合:「アプリケーション」 → 「MAMP」 → 「htdocs」
  5. ブラウザでURLを指定して公開フォルダにアクセス

PHPの基本文法<?php」から「?>」の中に
PHPの処理を書けばいい。

PHPは<?phpから?>の間に記述する。
それ以外の箇所に書いた記述は通常のHTMLとして処理される。
PHPファイルの拡張子は「.php」

PHPの基本文法
<?php ← ここからPHP開始
  ここにPHPの処理
?> ← ここでPHP終了

はじめてのPHPを書いてみよう!

  1. 「php-lessons」 › 「chapter01」 › 「hello」フォルダ内に「index.php」を作成
  2. 下記を参考にはじめてののPHPを記述
chapter01/hello/index.php
<?php
  print('Hello PHP');
?>
  1. 上書き保存
  2. ブラウザでURLを指定して公開フォルダ内の「php-lessons」 › 「chapter01」 › 「hello」フォルダ内「index.php」アクセス
    http://localhost/php-lessons/chapter01/hello/
ブラウザでの表示例

RERUN


PHPのコメント プログラムの内容は頭にメモせず、
ソースコード内にメモをする。

ソースコードにメモを残すことを、コメントや、コメントアウトと呼ぶ。

PHPのコメント
// 1行分のコメント

/*
  複数行の
  コメント
*/

コメントを記述してみよう!

  1. 「php-lessons」 › 「chapter01」 › 「hello」フォルダ内の「index.php」をテキストエディタで開く
  2. 下記を参考に<?php?>の間にコメントを追記
chapter01/hello/index.php
<?php
  // PHPの基本

  /*
    print ・・・ 画面に出力する命令
    文字列を出力す   る場合は「'」か「"」で囲む
  */
  print('Hello PHP');
?>
  1. 上書き保存

画面に出力 画面に文字列を出力してみよう。

PHPで画面に出力するには print または、echoという命令を使う。
両者には細かな違いはあるものの大差はないので、基本的には好きな方を使えばよい。

print命令 ・・・ 画面に出力する命令
print(表示する内容)
// または
print 表示する内容
echo命令 ・・・ 画面に出力する命令
echo(表示する内容)
// または
echo 表示する内容

出力命令を使ってみよう!

  1. 「php-lessons」 › 「chapter01」 › 「hello」フォルダ内の「index.php」をテキストエディタで開く
  2. 下記を参考に?>の手前に、print()命令や、echo()命令を追記
chapter01/hello/index.php
/*
  print ・・・ 画面に出力する命令
  文字列を出力する場合は「'」か「"」で囲む
*/
print('Hello PHP');
print '<p>HTMLのタグも出力できる</p>'; // 半角スペースで () を省略できる

/*
  echo ・・・ 画面に出力する命令
  文字列を出力する場合は「'」か「"」で囲む
*/
echo('<p>echoによる出力</p>');
echo '<p>echoによる出力2</p>';
  1. 上書き保存
  2. ブラウザで「chapter01」 › 「hello」フォルダ内の「index.php」にアクセス
    http://localhost/php-lessons/chapter01/hello/
ブラウザでの表示例

RERUN


エスケープシーケンス 文字列の中に「'」や「"」など、
特殊な記号を埋め込む。

printechoで出力する文字列の中に「'」や「"」を使う場合は、
文字列に含めない方の引用符を使うか、引用符の前に¥ (Mac: option + ¥を入力する。
これをエスケープシーケンスを言う。

// 文字列に含めない方の引用符を使う
echo "I'm Fine!";
// 文字列に含めない方の引用符を使う
echo 'I\'m Fine!';

エスケープシーケンスを使ってみよう!

  1. 「php-lessons」 › 「chapter01」 › 「hello」フォルダ内の「index.php」をテキストエディタで開く
  2. ?>の手前に、echo()命令で、エスケープシーケンスを活用して、
    「I'm Studying」と出力
chapter01/hello/index.php
// エスケープシーケンス
echo 'I\'m Studying';
  1. 上書き保存
  2. ブラウザで「chapter01」 › 「hello」フォルダ内の「index.php」にアクセス
    http://localhost/php-lessons/chapter01/hello/
ブラウザでの表示例

RERUN

主なエスケープシーケンス
エスケープシーケンス 説明
\n 改行
\t タブ
\' シングルクォーテーション
\" ダブルクォーテーション

HTMLとの共存 タグの中でも、タグの外でも
PHPはどこでも使える。

PHPは<?phpから?>の間であれば、HTML文書内のどこにでも記述できる。
つまり、PHPに処理させたいところだけPHPで書けばいい。

HTMLと共存してみよう!

  1. 「php-lessons」 › 「chapter01」 › 「html」フォルダ内に「index.php」を作成
  2. 下記参考にHTMLPHPを記述
chapter01/html/index.php
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>HTML内でPHPを使う</title>
</head>
<body>
<?php
  echo '<h1>PHPによってHTMLを出力</h1>';
?>
<p><?php echo 'p要素の中でPHPによる出力'; ?></p>
</body>
</html>
  1. 上書き保存
  2. ブラウザで「chapter01」 › 「html」フォルダ内「index.php」にアクセス
    http://localhost/php-lessons/chapter01/html/
ブラウザでの表示例

RERUN

PHPの環境情報 開発前にPHPのバージョンや
環境の情報を確認しておく。

phpinfo関数を使えば、 PHPのバージョンや、各種設定情報を取得できる。

phpinfo関数 ・・・ PHPの環境情報を出力する関数
phpinfo(表示したい情報)
  関数名   引数 (パラメータ)

引数はPHPマニュアルを参照

環境情報を表示してみよう!

  1. 「php-lessons」 › 「chapter01」 › 「phpinfo」フォルダ内の「index.php」を作成
  2. 下記を参考にphpinfo()関数を記述
chapter01/phpinfo/index.php
<?php
  // PHPの環境情報の表示
  phpinfo();
?>
  1. 上書き保存
  2. ブラウザで「chapter01」 › 「phpinfo」フォルダ内の「index.php」にアクセス
    http://localhost/php-lessons/chapter01/phpinfo/
ブラウザでの表示例

RERUN

関数とは 決まった処理をして結果を返す。

関数とは、引数と呼ばれる設定値を使って、
予め決められた処理を行い結果を返す仕組み。

関数とは
  1. 焼くという作業で関数を考えてみる 「焼く」という作業で関数を考えてみる。
  2. 「焼く」ための設定が必要 「焼く」ための設定が必要。
  3. 焼く関数の構文 焼く関数の構文。
  4. 焼く関数の構文。 焼く関数の構文。
  5. 焼く関数の使ってみる。 焼く関数の使ってみる。
  6. 結果が戻り値。 結果が戻り値。
  7. 値を変更すると 表示するなら echo。

練習問題 今回の理解度をチェック。

「chapter01」 › 「training」フォルダ内の「index.php」を開き、
下記の問題を解いて下さい。

ブラウザでの完成例

RERUN

    • 文字列「はじめてのPHP」
    • 文字列「文字列を出力する時は「'」か「"」で囲むらしい」
解答例
chapter01/training/index.php
<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title><?php echo 'はじめてのPHP'; ?></title>
</head>
<body>
  <h1>PHPの練習問題1</h1>

  <h2><?php echo 'はじめてのPHP'; ?></h2>
  <p><?php echo '文字列を出力する時は「\'」か「"」で囲むらしい'; ?></p>

</body>
</html>

解答例は全問題のチェックボックスが on になるとご覧いただけます。

まとめ PHPはHTMLに記述できる
サーバーサイドスクリプト。

PHPはWEBアプリケーションに特化した、サーバーサイドのプログラミング言語です。
主に、ブログや掲示板、SNSなど、ユーザーとの対話を行うWEBサイトに使われています。

  • PHPの開発にはサーバーサイドの環境が必要
  • PHPファイルはサーバーの公開フォルダに保存し、
    URLでアクセスする
  • PHPの処理は、<?php?> の間に記述する
  • 拡張子は、「.php