1. パーソルテクノロジースタッフのエンジニア派遣
  2. 【はたラボ】派遣のニュース・仕事情報
  3. IT/Web派遣コラム
  4. 【PHP入門】初心者でもわかるexplode関数の使い方

【PHP入門】初心者でもわかるexplode関数の使い方

IT/Web派遣コラム この記事は約 19 分で読めます。

ソーシャルメディアやスマートフォンが普及したことにより、PHP言語をベースとしたWebサイトの需要が高まっています。

 

具体的にPHP言語は

  • ポータルサイト
  • ECサイト
  • チャットシステム
  • WordPressなどのCMS

などの構築に使われるプログラミング言語です。

 

PHPは他の言語やデータベースと連携したシステム開発に使われることが多いため、エンジニアとして勉強しておいて損はないでしょう。

この記事では、PHPの関数の中でもっとも使用頻度の高い「explode関数」を中心に解説します。

 

PHPとは

PHPとは、「Hypertext Preprocessor」を再帰的に略したもので、Web開発によく使用されるオープンソースの汎用スクリプト言語のことです。

JavaScriptなどとは異なり、サーバーサイドで実行されるため、ユーザーのブラウザからはPHPの内容を見ることはできません。

そのため、PHPは個人情報やパスワードなどの情報を扱う処理に適しています

 

 

PHPの特徴

Web開発の現場でよく使用されるPHPには、さまざまな特徴があります。

 

Webプログラミング初心者にもわかりやすい

HTMLやCSSと比べると難易度は高くなりますが、HTMLの形を残したままプログラミングが可能となるため、Webプログラミング初心者にも挑戦しやすい言語です。

 

データベースと連携しやすいため、システム構築に向いている

MySQLなどのデータベースを操作する命令文や、配列に関する命令も多く、データベースを使用したサイトの構築に適しています。

具体的には、顧客管理や商品管理を必要とするECサイトや、記事をデータベースで管理するブログシステムなどが挙げられます。

 

サーバーサイドの言語のため、秘密を保持したデータのやり取りが可能

JavaScriptとは異なり、ブラウザからソースコードを表示してもPHPでプログラムした部分はユーザーには見えません。

そのため、IDとパスワードを入力させたり、マイページを作成したりといった個人情報を扱うサイトの構築に適しています。

 

PHPの基礎

PHPのプログラムは、HTMLの中に開始命令の「<?php終了命令の「?>で囲んで記述します。

また、ファイルの拡張子は「.php」です。

PHPの記述は必須ではなく、HTMLファイルの拡張子を「.html」から「.php」に代えてサーバーにアップロードすれば、PHPファイルとして扱われ、ブラウザでHTMLファイルと同様に表示されます。

 

PHP開発のための環境設定

PHPはサーバーサイドのスクリプト言語です。

サーバーで動作する言語のため、PHPに対応したサーバーを使う必要があります。

 

HTMLファイルであれば、自分のPC上からブラウザで確認することができますが、PHPファイルでは、サーバーにアップロードしてから、サーバーのURLにアクセスする必要があります。

その都度サーバーにアップして確認するということは、頻繁に確認作業が発生するため、非常に作業効率が悪い状態です。

 

自分のPC上でPHPを動かすためには、PHP環境を自分のPCに構築するための「XAMPP」と呼ばれるフリーウェアをインストールする必要があります。

XAMPPは公式サイトからインストーラーをダウンロードすることで、簡単にインストールが可能です。

XAMPP公式サイト:https://www.apachefriends.org/jp/index.html

 

変数と配列

変数はデータを保存しておく箱にたとえられます。

変数の中に文字列や数、数式などを入れてその後の処理の中で使用するものです。

 

PHPの変数は先頭に「$」を付けて定義し、イコール「=」でをセットします。

以下のサンプルコードは、「$sport」という変数に「baseball」というをセットし、「echo」の命令で「$sport」という変数のを画面に表示します。

 

<?php
$sport= “baseball”;
echo $sport;
?>

ひとつの変数にはひとつのしか入れられません。

 

複数のをひとつの変数で扱いたい場合は、配列を使用します。

箱にたとえると、番号のついた変数の箱の集まりを「配列と考えればよいでしょう。

 

変数に配列をセットするには、array関数を使用して以下のような形で記述します。

 

array( 1, 2, 3,… )

 

サンプルコードは以下のとおりです。

変数「$sport」に、「baseball」「football」「golf」という3つのを持つ配列をセットします。

「echo」は、画面にを表示する命令です。

 

<?php
$sport = array(“baseball”, “football”,” golf”);
echo $sport[0];
?>

 

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

 

「echo $sport[0];」の部分を「echo $sport[1];」のように書き換えて実行してみると、$変数名[0]には「baseball」、$変数名[1]には「football」というように、がセットされていることがわかります。

 

またarray関数を使わず、変数の中にをひとつずつ直接指定したものを並べるという方法でも、配列を作成することができます。

サンプルコードは以下のとおりです。

 

<?php
$sport[0] = “baseball”;
$sport[1] = “football”;
$sport[2] = ”golf”;
echo $sport[0];
?>

 

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

 

連想配列

配列の概念を踏まえて「連想配列」を解説しましょう。

連想配列では、配列で振られていた番号の部分が文字列なります。

箱にたとえると、それぞれ別の名前のついた変数の箱の集まりが連想配列です。

普通の配列と同じように使用でき、連想配列と普通の配列を混ぜることも可能です。

 

それでは、具体を説明していきましょう。

まずは、普通の配列を作るサンプルコード

 

<?php
$name = array(“太郎”, “一郎”, “花子”);
echo $name[0];
?>

 

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

この場合、$name[0] と指定されているので、1番目の要素だけが表示されます。

この[0]にあたる部分は「配列の添え字」といい、phpでは0から始まる数で要素に付与されます。

 

ではこの配列を、連想配列にしてみましょう。

の変わりに、文字列を設定します。

またarray関数は、以下のような書き方も可能です。

 

array( キー1=>1, キー2=>2,…)

 

<?php
$name = array(“営業” => “太郎”, “プログラマー” => “一郎”, “デザイナー” => “花子”);
echo $name[“営業”];
?>

 

この場合、配列$nameの「営業」という名前を付けたデータだけが表示されます。

配列$nameの、「プログラマー」という名前を付けたデータは「一郎」、「デザイナー」という名前を付けたデータは「花子」となっているので、実行して確認してみましょう。

 

関数

関数とはあるまとまった処理を行い、実行結果を返すものです。

決まった処理をプログラムの別の場所で、何度も使用する場合に役立ちます

 

たとえば「メールを送る関数」「大文字を小文字に変換する関数」などを作っておくと、その後のプログラミング時に関数を呼び出すことで、同じプログラムを書く手間が省けます。

 

関数には、PHPにあらかじめ定義されている「組み込み関数と、ユーザーが自分で作成する「ユーザー定義関数の2つがあります。

 

引数とは

関数に渡すパラメータを「引数」と呼びます。

たとえば、足し算をする関数がある場合、足す数を関数へ渡す必要があります。

この時に、関数に渡す「足す数」が引数です。

 

戻りとは

関数が実行した結果を「戻り」と呼びます。

関数は、戻りを取得するために作成される式です。

たとえば、足し算をする関数がある場合、引数をすべて足したを「戻り」に設定します。

 

戻りのない関数

戻りのない関数もあります。

「引数で受け取ったを表示する」や「メールを送信する」など、実行が目的の場合が戻り値のない関数です。

この場合プログラムでは、成功か失敗かを戻りとして設定して、エラーチェックに使用するのが一般的です。

 

explode関数とは?

explode関数とは、組み込み関数のひとつで、文字列データから配列を作る時などに役立つ関数です。

文字列(string)を、指定した区切り文字(delimiter)で分割します。

explode関数の引数は、以下のようになっています。

 

explode(第1引数[delimiter],第2引数[string],第3引数[limit])

 

引数 パラメータ
第1引数[delimiter] 区切り文字としてスペースやカンマなど)
第2引数[string] 文字列データ
第3引数[limit] この引数は任意で設定します。
返される
配列最大要素数になります。

 

explode関数の使い方

explode関数の具体的な使い方を説明します。

 

テキストを配列に変換する

explode関数は、戻り配列にして返すため、テキストを配列に変換したい時にも役立ちます。

 

たとえば 「青森、山形、秋田、岩手」という読点「、」で区切られた都道府県の文字列に説明していきましょう。

 

この状態でプログラムに使うと、非常に効率が悪くなってしまうため、explode関数を使って配列に変換します。

サンプルコードは以下のとおりです。

 

<?php
$str = “青森,山形,秋田,岩手”;
$ value = explode(“,”, $str);
echo ‘<p>’,$value[0],’</p>’;
echo ‘<p>’,$value[1],’</p>’;
echo ‘<p>’,$value[2],’</p>’;
echo ‘<p>’,$value[3],’</p>’;
?>

 

これを実行すると、画面には以下のように表示されます。

 

CSVデータ配列に変換する

テキストを配列に変換する方法の応用として、CSVデータ配列に変換するを解説します。

 

CSVとは「Comma Separated Value」の略で、Comma(カンマ)で Separated(区切った)Value()という形式のことです。

Excelなどの表計算ソフトで、表やデータベースをテキストファイルに書き出すときによく使用し、拡張子が「.csv」のファイルとなります。

 

としてこのようなCSVデータがある場合の、配列に格納するサンプルコードについて解説します。

改行を扱う場合、PHPでは「\n」という改行コードを使用します。

プログラム上で操作対象として扱うための表記です。

サンプルコードは以下のとおりです。

 

<?php
$input = “メロン,スイカ,バナナ\n人参,じゃがいも,キャベツ\n白玉,あずき,もも”;
$arrayLine = explode (“\n”, $input);
$output = [];
for($i = 0; $i < count($arrayLine); $i++)
{
$output[] = explode(“,”, $arrayLine[$i]);
}
print_r($output);
?>

 

この場合、2行目で改行コード「\n」で分割して配列$arrayLineをセットします。

6行目で「,」で分割して、配列$outputにを入れています。

配列$arrayLine要素のひとつが、配列$outputで形成されている状態です。

 

実行結果は、以下のようになります。

 

Array
(
[0] => Array
(
[0] => メロン
[1] => スイカ
[2] => バナナ
)
[1] => Array
(
[0] => 人参
[1] => じゃがいも
[2] => キャベツ
)
[2] => Array
(
[0] => 白玉
[1] => あずき
[2] => もも
)
)

 

explode関数を使う時の注意点

explode関数を使う上で注意点があります。

 

まずは、以下のサンプルコードをご覧ください。

果物の名前を並べた文字列から$fruits_arrayという配列を作成し、要素の数を表示するプログラムです。

 

<?php
$str = ‘りんご,バナナ,いちご,メロン,みかん’;
$fruits_array = explode(‘,’, $str);
print ‘フルーツは’ . count($fruits_array). ‘種類です。<br>’;
echo ‘<pre>’;
print_r($fruits_array);
echo ‘</pre>’;
?>

 

実行結果は以下のようになります。

ここで、$str変数に空文字列が入る(※変数の中に入れるものがない状態のこと)と、どうなるのでしょうか。

 

<?php
$str = ”;
$fruits_array = explode(‘,’, $str);
print ‘フルーツは’ . count($fruits_array). ‘種類です。<br>’;
echo ‘<pre>’;
print_r($fruits_array);
echo ‘</pre>’;
?>

 

予想では、要素数が0の空の配列が返されるところですが、結果は以下のようになります。

空の要素がひとつ入った配列が返され、フルーツは0種類ではなく1種類となってしまいました。

プログラムの中で関数を使う場合、予想外の結果が返されると重大なバグを生み出してしまう可能性があります。

explode関数の場合は、第2引数に空文字列が入らないように、関数に渡す前にエラーチェックを入れて対策を行うことが大切です。

 

「explode」と「split」の違い

「explode」とよく似た関数に「split」があります。

splitとexplodeは、文字列分割して配列で返すという意味では、同じ動作をする関数です。

 

split (第1引数[delimiter],第2引数[string],第3引数[limit])

explode(第1引数[delimiter],第2引数[string],第3引数[limit])

 

引数 パラメータ
第1引数[delimiter] 区切り文字としてスペースやカンマなど)
第2引数[string] 文字列データ
第3引数[limit] この引数は任意で設定します。
返される
配列最大要素数になります。

 

この、引数も記述方法も同じ2つの関数の違いは、区切り文字に正規表現を使えるかどうかです。

正規表現使う場合は「split関数を、正規表現使う必要がない場合は「explode関数を使用します。

 

しかし、split関数はPHP 5.3.0で非推奨となり、PHP7では削除されているため、文字列の分割の際はexplode関数が適しています

また、正規表現を使う場合には、preg_split関数が新たに推奨されています。

 

preg_split関数

正規表現を使う場合や複数の区切り文字文字列分割したいときは、preg_split関数を使用します。

 

array preg_split (第1引数[pattern],第2引数[subject],第3引数[limit] ,第4引数[flags])

 

引数 パラメータ
第1引数[delimiter] 区切り文字(例としてスペースやカンマなど)
第2引数[string] 文字列データ
第3引数[limit] この引数は任意で設定します。
返される配列の最大要素数になります。
第4引数[flags]
PREG_SPLIT_NO_EMPTY このフラグを設定すると、空文字列以外の値が返されます。
PREG_SPLIT_DELIM_CAPTURE このフラグを設定すると、文字列分割用のパターン中の カッコによるサブパターンでキャプチャされた値も同時に返されます。
PREG_SPLIT_OFFSET_CAPTURE このフラグを設定すると、値は配列で返されます。

 

それでは、2つ以上の区切り文字文字列分割するサンプルコードを使って、説明していきましょう。

以下のでは、カンマと半角スペースを区切り文字に指定して、文字列分割しています。

 

<?php
// カンマまたは ” “, \r, \t, \n , \f などの空白文字で句を分割する。
$keywords = preg_split(“/[\s,]+/”, “hypertext language, programming”);
print_r($keywords);
?>

 

\s」は半角スペースを表します。

プログラム上で操作対象として扱うための表記です。

 

/[」はエスケープシーケンスといい、通常の文字列では表せない特殊な文字や機能を表現するための規定された特別な文字列の並びのことです。

 

print_r」は、指定した変数に関する情報を表示させるPHPの命令文です。

実行すると、以下のように表示されます。

 

次のは、文字列を分解して一文字ずつ配列にセットするサンプルコードです。

 

<?php
$str = ‘string’;
$chars = preg_split(‘//’, $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($chars);
?>

 

実行結果は、以下のようになります。

 

explode関数はプログラミングに役立つ知識のひとつ

開発の現場でのプログラミングは、配列を使って大量のデータ処理を行うことが非常に多くなります。

 

explode関数は、テキストファイルやデータベースのデータから配列を作成する時などに役立つPHPの基本といえる関数です。

PHPエンジニアを目指すなら、配列の操作は必ず覚えておきましょう。

 

この記事では、初心者にわかりやすいように省略して説明している部分がありますので、もっと詳しい情報が知りたい方は、公式サイトのPHP関数リファレンスで確認して下さい。

 

まとめ
  • PHPエンジニアは多くの案件で高い需要を持つ
  • explode関数配列を作成するのに役立つ関数
  • explode関数文字列を指定した区切り文字分割することができる
  • PHPで文字列分割の際はsplit関数ではなくexplode関数を使用する

 

 

\ SNSでシェアしよう! /

【はたラボ】派遣のニュース・仕事情報・業界イロハ|派遣会社・人材派遣求人ならパーソルテクノロジースタッフ |IT・Web・機電の派遣求人ならパーソルテクノロジースタッフのエンジニア派遣の注目記事を受け取ろう

この記事が気に入ったら
いいね!しよう

【はたラボ】派遣のニュース・仕事情報・業界イロハ|派遣会社・人材派遣求人ならパーソルテクノロジースタッフ |IT・Web・機電の派遣求人ならパーソルテクノロジースタッフのエンジニア派遣の人気記事をお届けします。

  • 気に入ったらブックマーク! このエントリーをはてなブックマークに追加
  • フォローしよう!

関連記事

  • 業界注目の「Node.js」とは?メリット・デメリットも紹介

  • 実際のところどう?ITエンジニアのシフト制勤務

  • ゲームプログラマーになるには? 知ってほしい平均年収と仕事内容

  • Photoshop認定資格を目指すならこの2つ

  • SIer業界からの転職、4つの選択肢とメリット・デメリットを紹介

  • どっちが良いの?IT派遣エンジニアと正社員の長所・短所

PAGE TOP