更新履歴
更新日 | 更新者 | 更新内容 |
---|---|---|
2021/8/21 | JJI | ・”はじめに”の段落を追加 ・サンプルプログラムの実行結果に画面の画像を追加 |
はじめに
サンプルプログラムの中で次の記事で載せている関数を使用している場合があります。
電話番号(携帯番号)
サンプルプログラムです。
<?php
// 引数の値への厳密な型付け
declare(strict_types = 1);
// 共通ライブラリの読み込み
require_once __DIR__ . "../../../lib/sample_common.php";
echo "ファイル名:" . basename(__FILE__) . "<br>\n";
echo "【PHP】正規表現よく使用するパターン<br>\n";
// 電話番号(携帯番号)、070、080、090で開始し、999-9999-9999の形式
echo "電話番号(携帯番号)の正規表現<br>\n";
$match = "/^0[7-9]0-\d{4}-\d{4}$/";
echo "090-1234-5678:" . preg_match($match, "090-1234-5678", $hits) . ": ";
echo "090-1234-567:" . preg_match($match, "090-1234-567", $hits) . ": ";
echo "090-1234-5678-9:" . preg_match($match, "090-1234-5678-9", $hits) . ": ";
echo "060-1234-5678:" . preg_match($match, "060-1234-5678", $hits) . ":<br>\n";
?>
実行結果です。
・画面

・HTML
ファイル名:sample02_06_31.php<br>
【PHP】正規表現よく使用するパターン<br>
電話番号(携帯番号)の正規表現<br>
090-1234-5678:1: 090-1234-567:0: 090-1234-5678-9:0: 060-1234-5678:0:<br>
URL
サンプルプログラムです。
<?php
// 引数の値への厳密な型付け
declare(strict_types = 1);
// 共通ライブラリの読み込み
require_once __DIR__ . "../../../lib/sample_common.php";
echo "ファイル名:" . basename(__FILE__) . "<br>\n";
echo "【PHP】正規表現よく使用するパターン<br>\n";
// URL、文字列の先頭がhttp://、https://で始まる
echo "URLの正規表現<br>\n";
$match = "#^(http://|https://)#";
echo "http:/aaa:" . preg_match($match, "http:/aaa", $hits) . ": ";
echo "http://aaa:" . preg_match($match, "http://aaa", $hits) . ": ";
echo "ahttp://aaa:" . preg_match($match, "ahttp://aaa", $hits) . ": ";
echo "https://aaa:" . preg_match($match, "https://aaa", $hits) . ":<br>\n";
?>
実行結果です。
・画面

・HTML
ファイル名:sample02_06_32.php<br>
【PHP】正規表現よく使用するパターン<br>
URLの正規表現<br>
http:/aaa:0: http://aaa:1: ahttp://aaa:0: https://aaa:1:<br>
郵便番号
サンプルプログラムです。
<?php
// 引数の値への厳密な型付け
declare(strict_types = 1);
// 共通ライブラリの読み込み
require_once __DIR__ . "../../../lib/sample_common.php";
echo "ファイル名:" . basename(__FILE__) . "<br>\n";
echo "【PHP】正規表現よく使用するパターン<br>\n";
// 郵便番号、999-9999の形式であること
echo "郵便番号の正規表現<br>\n";
$match = "/^\d{3}-\d{4}$/";
echo "123-4567:" . preg_match($match, "123-4567", $hits) . ": ";
echo "12-4567:" . preg_match($match, "12-4567", $hits) . ": ";
echo "aaa-123-4567-bbb:" . preg_match($match, "aaa-123-4567-bbb", $hits) . ": ";
echo "1234567:" . preg_match($match, "1234567", $hits) . ":<br>\n";
?>
実行結果です。
・画面

・HTML
ファイル名:sample02_06_33.php<br>
【PHP】正規表現よく使用するパターン<br>
郵便番号の正規表現<br>
123-4567:1: 12-4567:0: aaa-123-4567-bbb:0: 1234567:0:<br>
IPアドレス
サンプルプログラムです。
<?php
// 引数の値への厳密な型付け
declare(strict_types = 1);
// 共通ライブラリの読み込み
require_once __DIR__ . "../../../lib/sample_common.php";
echo "ファイル名:" . basename(__FILE__) . "<br>\n";
echo "【PHP】正規表現よく使用するパターン<br>\n";
// IPアドレス、1-255.0-255.0-255.1-255の形式であるが、1-255のように数値範囲を
// 正規表現でチェックするのは表記が長くなる
// そのため、IPアドレス用のチェック関数でチェックする
echo "IPアドレスの正規表現<br>\n";
echo "1.1.1:" . check_ip("1.1.1") . ": ";
echo "1.1.1.1.1:" . check_ip("1.1.1.1.1") . ": ";
echo "0.1.1.1:" . check_ip("0.1.1.1") . ": ";
echo "1.1.1.1:" . check_ip("1.1.1.1") . ":<br>\n";
echo "127.0.0.1:" . check_ip("127.0.0.1") . ": ";
echo "192.168.100.152:" . check_ip("192.168.100.152") . ": ";
echo "255.255.255.255:" . check_ip("255.255.255.255") . ":<br>\n";
echo "256.0.0.1:" . check_ip("256.0.0.1") . ": ";
echo "1.-1.-1.1:" . check_ip("1.-1.-1.1") . ": ";
echo "1000.1.1.1:" . check_ip("1000.1.1.1") . ":<br>\n";
// IPアドレスチェック
function check_ip(string $str) :int {
// 正規表現で999.999.999.999の形式でチェック
$match = "/^(\d{1,3}\.){3}\d{1,3}$/";
if(preg_match($match, $str) === 0){
return 0;
}
// IPアドレスの各要素の数値範囲チェック
// 1、4番目は1-255の範囲、2、3番目は0-255の範囲であること
$ip = explode(".", $str);
for($i = 0; $i < count($ip); $i++) {
$ip_num = intval($ip[$i]);
if($i === 0 || $i === 3) {
if(1 > $ip_num || $ip_num > 255) {
return 0;
}
}
if($i === 1 || $i === 2) {
if(0 > $ip_num || $ip_num > 255) {
return 0;
}
}
}
return 1;
}
?>
実行結果です。
・画面

・HTML
ファイル名:sample02_06_34.php<br>
【PHP】正規表現よく使用するパターン<br>
IPアドレスの正規表現<br>
1.1.1:0: 1.1.1.1.1:0: 0.1.1.1:0: 1.1.1.1:1:<br>
127.0.0.1:1: 192.168.100.152:1: 255.255.255.255:1:<br>
256.0.0.1:0: 1.-1.-1.1:0: 1000.1.1.1:0:<br>
コメント