PHPとは・PHPでなにができるか

現在ほとんどのレンタルサーバーで利用できるようになった機能として「PHP(ピー・エイチ・ピー)」があります。このページでは、そもそもPHPとはどういうものか、またどのような利用例があるのかについて解説します。

最初に

とくに初心者の方に向けて、最初に少しだけ説明を入れておきます。
このあとで詳しく述べますが、PHPとはプログラミング言語の一種です。ただし、プログラミングをしない一般ユーザーにも関係する場合がしばしばあります。

というのも、レンタルサーバー上で動く便利なソフト(アプリ)の多くは、その動作条件としてPHPを必要としているためです。たとえばウェブサイト構築ソフトとして人気のWordPress(ワードプレス)もそのひとつです。

またPHPには5.6や8.0など新旧の様々なバージョンがあります。自分が使いたいソフトが決まっている場合には、その動作条件に合うバージョンのPHPがレンタルサーバーで使えるかを確認して選ぶことが大切です。

HTMLと相性の良いプログラミング言語

PHPを簡潔に表すと「HTMLと相性の良いプログラミング言語」となります。

もともとは「Personal Home Page(個人のホームページ)」の頭文字をとったツールとして生まれており、名前そのままに小規模なウェブサイトに機能を追加するためのものでした。そうした経緯もあり、PHPはHTMLとの連携が得意です。

HTMLコードに簡単に埋め込める

実際、PHPのプログラムコードというのは、HTMLタグとテキストで構成されたウェブサイトのソースコードの中に簡単に埋め込むことができます。具体的には下記のような記述を行うだけです。

<div id="welcome">
<p>ようこそ!<?php echo "私のホームページ" ?>へ</p>
</div>

上記はdivタグやpタグなどのHTMLで構成されていますが、pタグ内の一部がで囲まれています。このように記述すると、括弧内の記述はHTMLではなくPHPプログラムであると認識されます。

また「echo」は、その後ろに続く「”(ダブルクオーテーション)」で囲まれた文字列を出力するという命令です。よって、最終的にはブラウザには以下のように伝わります。

<div id="welcome">
<p>ようこそ!私のホームページへ</p>
</div>

状況に応じて表示を簡単に変えられる

もちろんわざわざPHPを使わなくても、前述の例のような単純な文字列(私のホームページ)ならHTMLにそのまま記述する方が簡単です。ただし、PHPを使えばより柔軟な表示にも対応できます。

たとえばPHPには「date」という、現在の日付や時刻を取得する命令があります。これをechoと組み合わせて使うことで、常に現在の年月日や時間を表示させられます。
ウェブサイトの最下部にはよくコピーライト(Copyright)がありますが、これも下記のような記述が使えます。

Copyright (c) 2010 - <?php echo date("Y") ?> ExampleWebsite All Rights Reserved. 

運営開始を示す「2010」まではHTML内にテキストとして入力していますが、現在まで更新が続いていることを示す部分にはPHPを用いています。もし現在が2016年であれば「2016」、2020年であれば「2020」と表示されます。

このように状況に応じて表示が変わることを「動的」であるとコンピュータの世界では表現します。一方で常に変わらないものは「静的」と呼びます。PHPは動的なウェブサイトを簡単に作れる言語でもあります。

PHP以外の言語について

Perl/Python/Ruby

なおレンタルサーバーで使うことができる代表的なプログラミング言語としては、ほかにもPerl・Python・Rubyなどがあります。

しかしこれらの言語は、HTML内に直接記述する(のように簡単に埋め込む)ことは通常できません。そのため作ったプログラムのファイルをサーバー内の別の場所に保存しておき、HTML内からそのファイルを呼び出して実行するという手順が必要です。
※このように外部のプログラムを呼び出す方法をCGIと呼びます。

JavaScript

このほかJavaScriptという言語も有名です。じつはJavaScriptは、HTML内に直接記述することができるという点はPHPと共通しています(記述方法は異なります)。

しかしながらJavaScriptはクライアント側(ウェブサイトを訪問したユーザー側)のブラウザでプログラムが実行されます。これはサーバー上でプログラムが動くPHPのような言語とは仕組みそのものがまったく違います。

JavaScriptの場合、ブラウザの種類(IE・Firefox・Chromeなど)の違いによって動作に差異が乗じたり、またサーバー上で動いているわけではないのでデータベースとの連携が不可能だったりします。どちらかといえば、ウェブサイトの操作性に関わる部分を担当することが多い言語です。
※サーバー側で動くJavaScriptというのも存在しますが、ここではブラウザ側で動く一般的なものを想定した話になっています

実際の活用例

実際にどのようにウェブサイトでPHPが活用されているのか、幾つか例を示してみます。

簡単な動的表示

前述の「date」の例で示したように、ウェブサイトの一部に簡単に動的な表示を盛り込むことができます。

ウェブサイトのパーツ化

「include(またはrequire)」という命令を使うことで、外部ファイルに書いたコードをそのまま取り込むことができます。これを利用すると、ウェブサイトのヘッダ・サイドバー・フッタなどをそれぞれ別ファイル(別パーツ)として作成しておいて読み込む、ということができます。

この方法だと、ウェブサイトの共通部分の管理がとても楽になります。たとえばサイドバーの内容を書き換えたい場合、サイドバーのファイル単体のHTMLを書き換えれば、それを呼び出している全ページの表示が一気に書き換わります。

APIの利用

現在は多くのウェブサイト・ウェブサービスがAPIと呼ばれる機能を提供しています。これはそのサイトの機能を呼び出すもの(正確にはそのための取り決め)です。PHPでAPIを使えば、他サイトの機能を借りて様々なことができるようになります。

たとえばYahoo!ニュースのAPIを利用すると、自分のウェブサイトのなかにYahoo!のトップニュースを表示させることができます。あるいは楽天市場のAPIを使えば、特定の商品の最安値を自サイトで常に表示させる、などといったことも可能です。

データベースとの連携

多くの情報をデータベースに事前に格納しておき、訪問者のリクエストや状況に応じて必要なデータをPHPで呼び出す、ということもできます。データベースとしてはオープンソースのMySQLがレンタルサーバーの多くで採用されています。

ウェブサイト管理ツールとして有名なWordPressも、このPHP+MySQLという構成になっています。じつはWordperssでは記事のタイトル・本文・コメントなどすべてがデータベースに格納されており、アクセスに応じて記事を毎回自動的に生成する、という仕組みをとっています。

レンタルサーバー選びの際のPHPについて

PHPのバージョンについて

現在では、有料のレンタルサーバーであれば基本的にPHPは使えるようになっています。そのため利用の可否よりも、むしろ使えるバージョンに意識を向けるべきです。

現在のPHPの最新バージョンは8.xです(2021年時点)。これより古いものとしては(PHP6というのは存在しないので)7.4.x~7.0.x、5.6.x~5.4.x…という感じです。ただし現在では7.2以下は公式非推奨となっています。

レンタルサーバーの速度について

なお活用例のところでも少し触れましたが、WordPressのようなツールはアクセスに応じてデータベースから毎回記事を動的に生成するという処理を行っています。これはたんなるHTMLファイルを表示させるよりも、非常にサーバーに負荷がかかります。

そのためとくにWordPressサイトの場合、レンタルサーバーによってはウェブサイトの表示・遅くなりやすいです。なるべく快適な環境で運用したい場合には、エックスサーバーのような安定性・速度に優れるサービスをおすすめします。

CGI版とモジュール版について

また少し技術的な話になりますが、PHPには(バージョンとは別に)CGI版とモジュール版という二種類が存在します。簡単言えばCGI版は複数ユーザーが安定運用しやすいが処理速度にやや劣り、一方でモジュール版については処理速度が速いかわりに運用には注意が必要となります。

これについてはより詳しい説明、およびPHPの高速化の工夫が取り入れられているレンタルサーバーの紹介を下記の記事で行っています。あわせて参考にしてください。

・参考記事:PHPのCGI版とモジュール版の違い