トップ 言語 PHP
プログラミング言語のPHPについてまとめています。読み方はピーエイチピーです。for文やmysql、ページングの例など、PHPとは?からやさしく説明しています。
この記事の目次です。
1. PHPプログラミング入門
2. PHPプログラミング基礎
3. PHPの設定
4. PHPの拡張モジュールの追加方法
5. フレームワーク、CMSなど
6. ハウツー(mysql、ページング、テスト環境など)
PHPとはどのような言語か簡単に見ていきます。
PHPは、主にWebサーバーと連携してWebページを動的に生成することを主目的に作られた、スクリプト式のプログラミング言語です。
Webページは、言いかえるとホームページのページです。WebページはHTMLというマークアップ式の言語で記述します。 HTMLで作成したファイルを、Web上に公開されているWebサーバに設置することで、ホームページのページがブラウザからアクセスして見れます。
このHTMLは、記述したものをそのまま表示するものです。基本的に条件に合わせて自動で表示内容を変更することができないです。 PHPを利用することでWebページを動的に生成することができます。
なお、PHPは、Webだけでなく、その他にGUIやコマンドラインなどのプログラムも作れます。
CMSで有名なWordPressもPHPで作られていいます。 HTMLを条件に合わせて自動で表示内容を変更することで実現しているWeb上で利用できるツールです。 PHPと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 から ?>の間にprint()を使って、Hello World!!と出力できます。
<?php print 'Hello World!!'; ?>
「print "Hello World!!";」の最後に行の終わりをしめす「;」を記述します。 このセミコロン「;」を記述したところまでが命令文となります。
命令文は、何らかの処理を行うPHPコードをまとめたものとなります。 サンプルのようなシンプルな命令文から複雑な命令文までいろいろなものがあります。
上記のソースを記述したファイルを拡張子が「.php」のファイルに保存して、レンタルサーバなどPHPが動作する公開用のサーバに配置します。 配置後ブラウザから配置URLにアクセスして表示を確認します。
ブラウザだアクセスすると「Hello World!!」と表示されます。
上述までのPHPプログラムの書き方について参考情報です。初心者の方には難しいと思われましたので参考情報としています。
PHP実行環境の設定ファイル(php.ini)でshort_open_tagを設定すると、PHPタグの短縮型 (<? ?>) を使用できます。 なお、<?= 記法に影響を与えません。こちらは常に有効です。
書き方が分からないとPHPプログラミングが始められません。 まずは文法を覚えることが必要になります。 ここでは、文法独学をテーマにPHPプログラミングの基礎知識をまとめています。
PHPプログラム内にコードについて説明するなどの用途でコメントが記述できます。
コメントは、基本的にはコードの読み手に対して情報を提供するものですが、一時的にコードをコメントにする用途でも使われます。 一時的にコメントにするような使い方のことをコメントアウトといいます。
PHP自体は実行時にコメントの内容を無視します。
PHPではプログラミング言語のC++の形式のコメント「//」とシェルスクリプト形式のコメント「#」、C言語形式のコメント「/* */」が使えます。
「//」もしくは「#」から行末まではコメントとして扱われます。 また、「/*」と「*/」で囲んだ範囲もコメントとして扱われます。
「//」もしくは「#」から行末までをコメントアウトするコメントをコメント行といいます。
<?php // print 'コメント'; print 'Hello World!!'; # print 'コメント'; /* print 'コメント'; */ ?>
上記コードを記述したファイルを拡張子が「.php」のファイルに保存して、レンタルサーバなどPHPが動作する公開用のサーバに配置します。 配置後ブラウザから配置URLにアクセスして表示を確認します。
ブラウザだアクセスするとコメント部分は読み飛ばされ、「Hello World!!」とだけ表示されます。
上記では、printで文字列を出力する例を見てきましたが、printの代わりにechoも使用できます。
echoの例です。
<?php echo 'Hello World!!'; ?>
以下は、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の演算子についてまとめています。
条件文は、条件に応じて異なる処理を行う文です。条件分の1つにPHPではif/else/elseif文があります。
PHPで繰り返し処理を行う方法の1つにfor文があります。 for文は繰り返し回数指定&条件に一致する場合に同じ処理を行いたいときにfor文を使います。
PHPにもtry/catchの構文があります。 try/chatchは例外を捕捉してエラー処理が記述できる構文です。 例外処理を使うことで、エラーが発生して落ちてしまう場合や問題が発生した場合の処理を自分でコントロールできるようになります。
try { //通常処理 } catch ( Exception $ex ) { //エラー処理 }
PHPの関数について見ていきます。
PHPではあらかじめ用意された標準関数と自分で定義したユーザー定義関数を使うことができます。 ここではユーザー定義関数の定義方法について解説しています。
PHPにあらかじめ用意されている標準関数について解説しています。
PHPのグローバル変数およびスーパーグローバル変数についてまとめています。
グローバル変数とは、大域変数ともいい、ファイル全体で有効な変数です。 PHPには、関数内などで変数に「global」を付けて宣言すると、その変数は関数の内外を問わず使用できます。
PHPでは、スーパーグローバル変数と呼ばれるPHPの実行環境側で自動的に定義され、プログラムのどこからでも汎用的に使うことが出来る変数があります。$_ENV、$_FILES、$_GET、$_POST、$_SERVERなど、PHPのスーパーグローバル変数についてまとめています。
PHPのファイル分割に関連した内容をまとめていきます。
include_once文は、スクリプトの実行時に指定したファイルを読み込みます。 ファイルは1度読み込んだものは再度読み込まれません。
include_once文は、スクリプトの実行時に読み込むファイルの 基準とするパスを設定することができます。
「.htaccess」などPHPの環境面の内容をまとめています。
「.html」の拡張子のファイルでPHPを実行する場合は、以下の設定を「.htaccess」に記述します。
AddType application/x-httpd-php .php .html
ファイルアップロード関連はPHPの設定についてまとめています。
PHPの拡張モジュールの追加方法についてまとめていきます。
imagickとは、ImageMagick APIを使用してPHPからImageMagickを操作するためのPHPの拡張モジュールのことをいいます。
imagickをCentOS7にインストールする例を見ていきます。前提として、ImageMagickとImageMagick-develをインストールする必要があります。
ImageMagickをインストールします。
yum -y install ImageMagick yum -y install ImageMagick-devel
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を使用したサンプルプログラムです。
<?php dl('imagick.so'); $filename = "test.jpg"; $image = new Imagick($filename); header("Content-Type: image/jpeg"); echo $image; $image->clear(); ?>
フレームワークやCMSなどPHPプログラミングの応用知識をまとめています。
FuelPHPは、オープンソースのHMVCパターンを用いるWebアプリケーションフレームワークです。
2011年ころにリリースされ、人気が急上昇しているのがLaravelです。 もしPHPのフレームワークを学習するならLaravelがおすすめです。
Laravelとは、Taylor Otwell が開発したMVCモデルのWebアプリケーション開発用フレームワーク(オープンソース)です。 公式サイトでは、表現力豊かでエレガントな構文を備えたWebアプリケーションフレームワークと紹介しています。 MITライセンスで公開され無料で利用できます。
PHPの制作を行っている場合、WordPressが触れないとつらいですね。WordPress(ワードプレス)についてまとめています。
ハウツー編です。mysql、ページングなどのサンプルを紹介していきます。
PHPで作成したWebアプリケーションのサンプルです。
PHPで作成した簡単なWebアプリケーションのサンプルです。
public_htmlはHTML公開用のディレクトリでlibはライブラリ用のディレクトリとして、 今回はindex.phpからWebApplication.phpを読み込んで機能を利用します。
lib └─com └─zealseeds WebApplication.php public_html index.php
<?php include_once '../lib/com/zealseeds/WebApplication.php'; $webapp = new WebApplication(); echo $webapp->doGet(); ?>
<?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を使用したPHPのサンプルを見ていきます。
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
<?php set_include_path('/home/user/lib'); include_once 'com/zealseeds/WebApplication.php'; $webapp = new WebApplication(); echo $webapp->doGet(); ?>
<?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; } } ?>
<?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; } } ?>
> 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のページングのサンプルです。
ウェブサービス関連です。
REST APIの多くは、APIのエンドポイントからのレスポンスをJSON(JavaScript Object Notation)形式で返します。 PHPはPHPの変数とJSON形式との間での相互変換にネイティブで対応していて、jsonモジュールでそれを実現しています。
PHPの変数をJSON形式に変換するときに使うのがjson_encode関数です。
<?php $data = array(1,2,"three"); $jsonData = json_encode($data); echo $jsonData; ?>
[1,2,"three"]
JSON形式のデータがあるときにそれをPHPの変数にするにはjson_decode関数を使います。
<?php $jsonData = "[1,2,[3,4],\"five\"]"; $data = json_decode($jsonData); print_r($data); ?>
Array ( [0] => 1 [1] => 2 [2] => Array ( [0] => 3 [1] => 4 ) [3] => five )
PHPのデバック方法について見ていきます。
var_dump()関数を使用することで変数の値が出力できます。
echo "<pre>"; var_dump($array); echo "</pre>";
PHPのテスト環境を作る方法についてです。
Windows上にPHPのテスト環境を作る方法について、いくつかの方法まとめています。
更新履歴になります。
スポンサーリンク
サイト内のページ
言語
C・C++
/HTML
/Java
/JavaScript
/PHP
/シェルスクリプト
開発環境
Ant
/Burp
/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インフラセキュリティ
公開サーバーのセキュリティ
SI
ホームページの作り方
スポンサーリンク
関連サイト内検索ツール
zealseedsおよび関連サイト内のページが検索できます。
IPアドレス確認ツール
あなたのグローバルIPアドレスは以下です。
18.97.9.175
HTMLの表示色確認ツール
パスワード生成ツール
文字数のプルダウンを選択して、取得ボタンを押すと「a~z、A~Z、0~9」の文字を ランダムに組み合わせた文字列が表示されます。
ここに生成されます。
スポンサーリンク
Copyright (C) 2007-2024 zealseeds. All Rights Reserved. Loarding…