トップ 言語 PHP

PHP―PHPとはからやさしく解説。for文やmysql、ページングの例など。

プログラミング言語のPHPについてまとめています。読み方はピーエイチピーです。for文やmysql、ページングの例など、PHPとは?からやさしく説明しています。

▲記事トップへ

目次

この記事の目次です。

1. PHPプログラミング入門
2. PHPプログラミング基礎
3. PHPの設定
4. PHPの拡張モジュールの追加方法
5. フレームワーク、CMSなど
6. ハウツー(mysql、ページング、テスト環境など)

更新履歴

1. PHPプログラミング入門

PHPとはどのような言語か簡単に見ていきます。

主にホームページ向けに作られたプログラミング言語

PHPは、主にWebサーバーと連携してWebページを動的に生成することを主目的に作られた、スクリプト式のプログラミング言語です。

Webページは、言いかえるとホームページのページです。WebページはHTMLというマークアップ式の言語で記述します。 HTMLで作成したファイルを、Web上に公開されているWebサーバに設置することで、ホームページのページがブラウザからアクセスして見れます。

このHTMLは、記述したものをそのまま表示するものです。基本的に条件に合わせて自動で表示内容を変更することができないです。 PHPを利用することでWebページを動的に生成することができます。

なお、PHPは、Webだけでなく、その他にGUIやコマンドラインなどのプログラムも作れます。

MySQLと連携して利用されることが多い

CMSで有名なWordPressもPHPで作られていいます。 HTMLを条件に合わせて自動で表示内容を変更することで実現しているWeb上で利用できるツールです。 PHPとMySQLを連携して作られているツールです。

MySQL

MySQLとは、Excelのようにデータを表形式で保存する専用のソフトです。 データを保存するのに特化した専用ソフトで、それだけでは、何もできないソフトです。一般的にそのような専用の処理を行うソフトをミドルウェアといいます。

つまり、MySQLはデータ保存部分の機能に特化したソフトです。 WordPressなど、PHPのプログラムで作られたWebツールやシステムは、よくこのMySQLを使用して、データの保存部分の機能を実現しています。

なお、MySQLについての詳しい説明は以下にまとめています。

詳細

歴史

PHPは、1995年にRasmus Lerdorf氏により「Personal Home Page Tools」という名前で開発されました。 もともとはオンラインに置いてある彼の履歴書へのアクセスを解析するためのものでしたが、その後改良されて現在のPHPとなりました。

正式名称

正式名称は、Hypertext Preprocessor(ピー・エイチ・ピー ハイパーテキスト プリプロセッサー)です。 オブジェクト指向にも対応しており、クラスの定義や継承、インタフェースの定義、クラスメンバのアクセス制御の機能が利用できます。 CakePHPなど高度なフレームワークがあり、WordPressのような世界中で利用されているPHP製のCMSがあります。

特徴

PHPの特徴としては次のようなことがあげられます。

設定ファイル

PHPスクリプトを実行するときの動作はPHPの設定ファイル(php.ini)で指定します。 php.iniはPHPをWebサーバのモジュールとして実行するときにはWebサーバの起動時に読み込まれます。 また、コマンドラインから実行するときには実行のたびに読み込まれます。

拡張子

PHPファイルの拡張子は、一般的に.phpが利用されます。

PHPプログラムの書き方

PHPでは<?php と ?>の間に記述されたコードがPHPコードとして解釈・実行されます。

<?php と ?>はPHPタグといいます。

サンプルソース

たとえば、<?php から ?>の間にprint()を使って、Hello World!!と出力できます。

<?php
print 'Hello World!!';
?>

ポイント―命令文とセミコロン

「print "Hello World!!";」の最後に行の終わりをしめす「;」を記述します。 このセミコロン「;」を記述したところまでが命令文となります。

命令文は、何らかの処理を行うPHPコードをまとめたものとなります。 サンプルのようなシンプルな命令文から複雑な命令文までいろいろなものがあります。

実行結果

上記のソースを記述したファイルを拡張子が「.php」のファイルに保存して、レンタルサーバなどPHPが動作する公開用のサーバに配置します。 配置後ブラウザから配置URLにアクセスして表示を確認します。

PHPプログラムの書き方―サンプルプログラムの動作結果

ブラウザだアクセスすると「Hello World!!」と表示されます。

PHPプログラムの書き方の参考

上述までのPHPプログラムの書き方について参考情報です。初心者の方には難しいと思われましたので参考情報としています。

PHPタグの短縮型

PHP実行環境の設定ファイル(php.ini)でshort_open_tagを設定すると、PHPタグの短縮型 (<? ?>) を使用できます。 なお、<?= 記法に影響を与えません。こちらは常に有効です。

2. PHPプログラミング基礎

書き方が分からないとPHPプログラミングが始められません。 まずは文法を覚えることが必要になります。 ここでは、文法独学をテーマにPHPプログラミングの基礎知識をまとめています。

PHPのコメントアウト方法

PHPプログラム内にコードについて説明するなどの用途でコメントが記述できます。

コメントアウトとは

コメントは、基本的にはコードの読み手に対して情報を提供するものですが、一時的にコードをコメントにする用途でも使われます。 一時的にコメントにするような使い方のことをコメントアウトといいます。

コメントの書き方/コメントアウトの方法

PHP自体は実行時にコメントの内容を無視します。

PHPではプログラミング言語のC++の形式のコメント「//」とシェルスクリプト形式のコメント「#」、C言語形式のコメント「/* */」が使えます。

「//」もしくは「#」から行末まではコメントとして扱われます。 また、「/*」と「*/」で囲んだ範囲もコメントとして扱われます。

コメント行とは

「//」もしくは「#」から行末までをコメントアウトするコメントをコメント行といいます。

コメントアウトの例

<?php
// print 'コメント';
print 'Hello World!!';
# print 'コメント';
/*
 print 'コメント';
 */
?>

上記コードを記述したファイルを拡張子が「.php」のファイルに保存して、レンタルサーバなどPHPが動作する公開用のサーバに配置します。 配置後ブラウザから配置URLにアクセスして表示を確認します。

PHPのコメントの書き方―サンプルプログラムの動作結果

ブラウザだアクセスするとコメント部分は読み飛ばされ、「Hello World!!」とだけ表示されます。

echo htmlの書き方

上記では、printで文字列を出力する例を見てきましたが、printの代わりにechoも使用できます。

サンプルソース1

echoの例です。

<?php
echo 'Hello World!!';
?>

サンプルソース2

以下は、html内でechoで文字列を出力する例です。

<!doctype html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title><?php echo "タイトル";?></title>
</head>
<body>
<?php echo "本文";?>
</body>
</html>

ヒアドキュメントの書き方

PHPにはヒアドキュメントという書き方もあります。 EOMとEOM;の間に{<変数>}という形式で出力する方法をヒアドキュメントといいます。

以下は、ヒアドキュメントを使用してhtmlをechoで出力する例です。

<?php
$title = "タイトル";
$body = "ヒアドキュメントの例";
$html = <<< EOM
<!doctype html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{$title}</title>
</head>
<body>
{$body}
</body>
</html>
EOM;

echo $html;
?>

PHPのデータ型と変数

プログラミングは突き詰めると、何らかのデータを使って何らかのアクションを行います。 つまりデータについての理解が重要です。構文のはじめとしてデータ型とリテラル、変数についてまとめています。

詳細

PHPの文字列

PHPには標準で文字列を作成したり操作する機能が組み込まれています。 文字列は、任意の長さの文字を連結したものです。

PHPの文字列の(シングル/ダブル)コーテーションとエスケープシーケンス

PHPで文字列を扱う場合は文字列をシングルクォーテーション(')とダブルクォーテーション(")で囲みます。 また、ダブルクォーテーションで文字列を囲んだ場合はその中で変数やエスケープシーケンスが利用でき、 シングルクォーテーションで囲んだ場合は変数やエスケープシーケンスはそのままの文字として扱われます。

詳細

PHPの配列

PHPの配列はarray関数で取得できます。 またcount関数で配列の要素数が調べられます。

<?php
$a = array('a','b','c');
echo "$a[0]\n";
echo "$a[1]\n";
echo "$a[2]\n";
echo count($a) . "\n";
?>

このコードを実行すると以下のように表示されます。

php sample.php
a
b
c
3

PHPの演算子

PHPの演算子についてまとめています。

詳細

PHPのif/else/elseif文

条件文は、条件に応じて異なる処理を行う文です。条件分の1つにPHPではif/else/elseif文があります。

詳細

PHPのfor/foreach文

PHPで繰り返し処理を行う方法の1つにfor文があります。 for文は繰り返し回数指定&条件に一致する場合に同じ処理を行いたいときにfor文を使います。

詳細

PHPのtry/catch

PHPにもtry/catchの構文があります。 try/chatchは例外を捕捉してエラー処理が記述できる構文です。 例外処理を使うことで、エラーが発生して落ちてしまう場合や問題が発生した場合の処理を自分でコントロールできるようになります。

try {
    //通常処理

} catch ( Exception $ex ) {
    //エラー処理
}

PHPの関数

PHPの関数について見ていきます。

ユーザー定義関数

PHPではあらかじめ用意された標準関数と自分で定義したユーザー定義関数を使うことができます。 ここではユーザー定義関数の定義方法について解説しています。

詳細

PHPの標準関数

PHPにあらかじめ用意されている標準関数について解説しています。

詳細

PHPのグローバル変数

PHPのグローバル変数およびスーパーグローバル変数についてまとめています。

グローバル変数

グローバル変数とは、大域変数ともいい、ファイル全体で有効な変数です。 PHPには、関数内などで変数に「global」を付けて宣言すると、その変数は関数の内外を問わず使用できます。

スーパーグローバル変数

PHPでは、スーパーグローバル変数と呼ばれるPHPの実行環境側で自動的に定義され、プログラムのどこからでも汎用的に使うことが出来る変数があります。$_ENV、$_FILES、$_GET、$_POST、$_SERVERなど、PHPのスーパーグローバル変数についてまとめています。

詳細

PHPのファイル分割

PHPのファイル分割に関連した内容をまとめていきます。

include_once文

include_once文は、スクリプトの実行時に指定したファイルを読み込みます。 ファイルは1度読み込んだものは再度読み込まれません。

set_include_path文

include_once文は、スクリプトの実行時に読み込むファイルの 基準とするパスを設定することができます。

3. PHPの設定

「.htaccess」などPHPの環境面の内容をまとめています。

「.html」の拡張子のファイルでPHPを実行する方法

「.html」の拡張子のファイルでPHPを実行する場合は、以下の設定を「.htaccess」に記述します。

AddType application/x-httpd-php .php .html

ファイルアップロード関連の設定方法

ファイルアップロード関連はPHPの設定についてまとめています。

詳細

4. PHPの拡張モジュールの追加方法

PHPの拡張モジュールの追加方法についてまとめていきます。

imagick

imagickとは、ImageMagick APIを使用してPHPからImageMagickを操作するためのPHPの拡張モジュールのことをいいます。

imagickのインストール

imagickをCentOS7にインストールする例を見ていきます。前提として、ImageMagickとImageMagick-develをインストールする必要があります。

ImageMagickのインストール

ImageMagickをインストールします。

yum -y install ImageMagick
yum -y install ImageMagick-devel
imagickのインストール

imagick-3.4.3のインストール例です。他のバージョンは「https://pecl.php.net/package/imagick」で確認できます。

$ wget https://pecl.php.net/get/imagick-3.4.3.tgz
$ tar zxvf imagick-3.4.3.tgz
$ cd imagick-3.4.3
$ phpize
$ ./configure
$ make
# make install

imagickを使用したサンプルプログラム

imagickを使用したサンプルプログラムです。

<?php
dl('imagick.so');
$filename = "test.jpg";
$image = new Imagick($filename);
header("Content-Type: image/jpeg");
echo $image;
$image->clear();
?>

5. フレームワーク、CMSなど

フレームワークやCMSなどPHPプログラミングの応用知識をまとめています。

FuelPHP

FuelPHPは、オープンソースのHMVCパターンを用いるWebアプリケーションフレームワークです。

詳細

Laravel

2011年ころにリリースされ、人気が急上昇しているのがLaravelです。 もしPHPのフレームワークを学習するならLaravelがおすすめです。

Laravelとは

Laravelとは、Taylor Otwell が開発したMVCモデルのWebアプリケーション開発用フレームワーク(オープンソース)です。 公式サイトでは、表現力豊かでエレガントな構文を備えたWebアプリケーションフレームワークと紹介しています。 MITライセンスで公開され無料で利用できます。

WordPress

PHPの制作を行っている場合、WordPressが触れないとつらいですね。WordPress(ワードプレス)についてまとめています。

詳細

6. ハウツー(mysql、ページング、テスト環境など)

ハウツー編です。mysql、ページングなどのサンプルを紹介していきます。

Webアプリケーション

PHPで作成したWebアプリケーションのサンプルです。

簡単なWebアプリケーション

PHPで作成した簡単なWebアプリケーションのサンプルです。

サンプル

public_htmlはHTML公開用のディレクトリでlibはライブラリ用のディレクトリとして、 今回はindex.phpからWebApplication.phpを読み込んで機能を利用します。

lib
└─com
     └─zealseeds
             WebApplication.php
public_html
      index.php
公開用ファイル(index.php)
<?php
include_once '../lib/com/zealseeds/WebApplication.php';
$webapp = new WebApplication();
echo $webapp->doGet();
?>
非公開ファイル(WebApplication.php)
<?php
class WebApplication {

	private $html = "Hello World!!\n";

	public function doGet() {
		return $this->html;
	}
}
?>
実行方法

phpがインストールされている環境でphpコマンドにパスを通して、以下のように実行します。

> php index.php
Content-type: text/html

Hello World!!

また、Webサーバ+PHPを構築したサーバのHTML公開用のディレクトリにソースファイルを配置して、 ブラウザよりindex.phpアクセスすると「Hello World!!」と出力されます。

mysql

mysqlを使用したPHPのサンプルを見ていきます。

Webアプリケーション

PHPからmysqlを使用したWebアプリケーションのサンプルです。

サンプル

例えば、この機能を使うとはじめの一回ライブラリのパスを設定すればよくなり、自前のライブラリを作りやすくなります。

public_htmlはHTML公開用のディレクトリでlibはライブラリ用のディレクトリとして、 今回はindex.phpからWebApplication.phpとMySQLClient.phpを読み込んで機能を利用します。

/home/user
├─lib
│  └─com
│      └─zealseeds
│          │  WebApplication.php
│          │
│          └─connection
│              └─mysql
│                      MySQLClient.php
└─public_html
        index.php
公開用ファイル(index.php)
<?php
set_include_path('/home/user/lib');
include_once 'com/zealseeds/WebApplication.php';

$webapp = new WebApplication();
echo $webapp->doGet();
?>
非公開ファイル(WebApplication.php)
<?php
include_once 'com/zealseeds/connection/mysql/MySQLClient.php';

class WebApplication {

	private $html = "";

	public function doGet() {
		$mysql = new MySQLClient();
		$body = $mysql->doSelectOne('select body from pageinfo where id=1', 'body');
		$this->html = "<html><body>" . $body . "</body></html>\n";
		return $this->html;
	}
}
?>
非公開ファイル(MySQLClient.php)
<?php
class MySQLClient {

	public function doSelectOne($sql, $col) {
		$con = mysql_connect('localhost', 'dbuser', 'password');
		$db_selected = mysql_select_db('dbname', $con);
		mysql_set_charset('utf8');
		$result = mysql_query($sql);
		$row = mysql_fetch_assoc($result);
		$value = $row[$col];
		mysql_close($con);
		return $value;
	}
}
?>
DB準備
> mysql -u dbuser -ppassword
mysql> create database dbname;
mysql> use dbname;
mysql> create table pageinfo(id int PRIMARY KEY, body VARCHAR(64));
mysql> insert into pageinfo values (1, 'Hello World!!');
mysql> quit
実行方法

phpがインストールされている環境でphpコマンドにパスを通して、以下のように実行します。

> php index.php
Content-type: text/html

<html><body>Hello World!!</body></html>

また、Webサーバ+PHPを構築したサーバのHTML公開用のディレクトリにソースファイルを配置して、 ブラウザよりindex.phpアクセスすると「Hello World!!」と出力されます。

ファイルアップロード

Webフォームからのファイルアップロードを処理するPHPのサンプルコードです。

詳細

ページング

PHPのページングのサンプルです。

詳細

PHPのデバック方法

PHPのデバック方法について見ていきます。

var_dump()

var_dump()関数を使用することで変数の値が出力できます。

echo "<pre>";
var_dump($array);
echo "</pre>";

テスト環境を作る方法

PHPのテスト環境を作る方法についてです。

Windows

Windows上にPHPのテスト環境を作る方法について、いくつかの方法まとめています。

詳細

更新履歴

更新履歴になります。

戻る

スポンサーリンク

サイト内のページ

言語
C・C++ /HTML /Java /JavaScript /PHP /シェルスクリプト

開発環境
Ant /Eclipse /Fiddler /gcc /gdb /Git /g++ /JDK /JMeter /JUnit /Teraterm /ZAP

技術・仕様
Ajax /CORBA /Jakarta EE(旧称J2EE、Java EE) /JNI

ライブラリ/Framework/CMS
bootstrap /jQuery /FuelPHP /Lucene /MyBatis /Seasar2 /Spring /Struts /WordPress

Web API
Google Maps

ITインフラOSとミドルウェア
Linux /Windows /シェル
ActiveMQ /Tomcat /MariaDB /MySQL /Nagios /Redis /Solr

ITインフラサーバー
公開Webサーバー

ITインフラネットワーク
プログラミング /構築

ITインフラセキュリティ
公開サーバーのセキュリティ

PC製品
ZOTAC

SI
ホームページの作り方

その他
IT用語 /ITスキル体系

スポンサーリンク

関連サイト内検索ツール

zealseedsおよび関連サイト内のページが検索できます。

IPアドレス確認ツール

あなたのグローバルIPアドレスは以下です。

34.239.147.7

HTMLの表示色確認ツール

パスワード生成ツール

文字数のプルダウンを選択して、取得ボタンを押すと「a~z、A~Z、0~9」の文字を ランダムに組み合わせた文字列が表示されます。

ここに生成されます。

スポンサーリンク