2018-08-14に更新

PHPとは?

PHPというのはプログラミング言語の一つで、主にブラウザで閲覧するWebサービス等に利用されています。HTMLでページを作る場合は表示内容が固定になりますが、PHPを利用するとそのサービスにログインしているユーザーや、投稿されている内容等によって表示を変えたりすることができます。

PHPの理解にはHTMLが必要となりますので、HTMLの知識がない方はまず下記を見ておいてください。

HTMLとは? - Crieit

具体的にPHPではどのようなことができるのでしょうか?

HTMLを表示する

PHPはHTMLの中にプログラムを記述することができる言語です。そのため、下記のようにプログラムのない単なるHTMLも書くことができます。

<h1>ただのHTMLです</h1>

プログラムを書く

ただのHTMLの中にPHPでプログラムを書くと、下記のようになります。

<p>今の時刻は<?= date('H:i') ?>です。</p>

上記の``のところがプログラムです。これはdate関数というものを使用しており、H:iという形式で現在の時刻を表示する、という処理を行っています。これをPHPが動作するサーバーに設置して表示させると下記のようになります。

今日の時刻は12:33です。

PHPを記述する場合は、PHPの開始タグと終了タグを使います。下記の最初の行と最後の行が開始タグ、終了タグです。

<?php
echo date('H:i');
?>

このように開始と終了で囲まれた部分がPHPとして動作します。上記は先程と同様、時刻を表示するプログラムです。echoというのは文字列を出力する命令です。

ちなみにこれは前述の``と全く同じになります。PHPタグの中でechoだけを実行する場合には、最初のようにechoを省略した書き方をすることができます。

どうやって動かすの?

PHPはHTMLと同じようにテキストファイルですが、PHPはプログラムを実行してHTMLとして出力する必要があります。そのためにWebサーバーにPHPのプログラムファイルを設置し、そこにブラウザでアクセスする必要があります。アクセス方法はHTMLと変わりありませんが、PHPの場合はプログラムが全部実行された後の状態のものが表示されます。

サーバーはここでちゃちゃっと簡単に説明はできないため、ぜひ別途調べて知識を身につけてみてください。とりあえず最初は無料でPHPを使えるレンタルサーバーで試してみるのが良いと思います。Xdomain、XREA等は昔からあって良さそうなイメージです。このあたりの有名なサーバであれば、検索すると結構PHPの動かし方などの情報も見つかりやすいです。

できること色々

PHPで色々とできることをあげてみます。

スクレイピングやAPI

file_get_contentsやcurl関連の機能を使うことで、Web上で一般公開されているサイトのHTMLを取得することができます。このHTMLを解析することで、必要な情報を仕入れて利用することなどができます。

また、世の中には様々なAPIも一般公開されていますが、こういったものも使用することができます。例えばリクルートがホットペッパーのAPIを公開しているので、飲食店の情報を取得して自分のサイトに掲載したりすることが可能です。

データの保存

サーバー上にテキストファイルを保存したり、MySQLというデータベースと接続することで、データを保存することができるようになります。例えばTwitterの様にツイートを保存し、それを一覧表示したり検索したり、ということができます。

テキストファイルは簡単ですが、データが消えたり処理が遅くなったりするのでMySQL等のデータベースを使うのが一般的です。レンタルサーバーを選ぶ際はMySQLが無料で使えるかも見てみると良いと思います。

メール送信等

PHPでメールを送信することもできます。複数の人に置く処理を作ればメーリングリストのようなものも作ることができます。また、APIと連携することでツイートしたり、LINEにメッセージを送ったり、スマホにPUSH通知を送ることなども可能です。

バックグラウンド処理

Web上でブラウザに表示せず、サーバー上にてバックグラウンドで定期的に処理を実行することなどもできます。

まとめ

色々とPHPでできることをまとめてみました。これらを組み合わせるとブログを作ったり、会員制サービスを作ったり、世の中に存在するWebサービスと同じものを作ることができます。(もちろん難しいものは時間や技術力が必要になりますが)

ただ、これらはPHPに限らず、Webで利用できるプログラミング言語であればどれでも同じことができます。他の言語も人気のあるものは多いので色々と自分に合うものを調べてみると面白いかもしれません。


dala00

Crieitの開発者です。 主にLAMPで開発しているSEです(在宅&常駐)。大体10年程。 業務依頼、同業種の方からのコンタクトなどお気軽にご連絡ください。 業務経験有:PHP, MySQL, CakePHP3, Laravel5, JavaScript 趣味:Elixir, Phoenix, Node, Vue等色々

Crieitはαバージョンで開発中です。進捗は公式Twitterアカウントをフォローして確認してください。 興味がある方は是非記事の投稿もお願いします! どんな軽い内容でも嬉しいです。
関連記事

コメント