LoginSignup
0

More than 5 years have passed since last update.

for文でアルファベットとひらがな

Posted at

先日見かけた

の流れを読んで,
「それ、拙作のクラスライブラリ PEACH で似たようなことが出来るよ!」
という紹介をしたく, アルファベットに加えてひらがなもリストアップするプログラムを書いてみました.

下準備

PHP5.4 以上の環境を前提として, クラスライブラリ PEACH2 をインストールします.
GitHub からソースコードをダウンロードしても良いですが, 最近になって Composer にも対応したので, 今回は Composer 経由で入れてみます.
適当なディレクトリで以下を実行.

$ composer require trashtoy/peach2

サンプルコード

以下のように Utf8Codec というクラスを利用します.

sample01.php
<?php
use Peach\DF\Utf8Codec;

require_once(__DIR__ . "/vendor/autoload.php");

$codec = new Utf8Codec();
echo "alphabet", PHP_EOL;
for ($i = 65; $i <= 90; $i++) {
    echo $codec->encode($i), PHP_EOL;
}

echo "hiragana", PHP_EOL;
for ($i = 0x3041; $i <= 0x3093; $i++) {
    echo $codec->encode($i), PHP_EOL;
}

実行結果はこんな感じ.

$ php sample01.php
alphabet
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
hiragana
ぁ
あ
ぃ
い
ぅ
う
ぇ
え
ぉ
お
か
が
き
ぎ
く
ぐ
け
げ
こ
ご

(中略)

ら
り
る
れ
ろ
ゎ
わ
ゐ
ゑ
を
ん

おまけ

数値→文字列の変換だけでなく, 文字列を数値に変換することも出来ます.

sample02.php
<?php
use Peach\DF\Utf8Codec;

require_once(__DIR__ . "/vendor/autoload.php");

$codec = new Utf8Codec();
var_dump($codec->decode("Test:本日は晴天なり"));

実行結果.

array(12) {
  [0]=>
  int(84)
  [1]=>
  int(101)
  [2]=>
  int(115)
  [3]=>
  int(116)
  [4]=>
  int(58)
  [5]=>
  int(26412)
  [6]=>
  int(26085)
  [7]=>
  int(12399)
  [8]=>
  int(26228)
  [9]=>
  int(22825)
  [10]=>
  int(12394)
  [11]=>
  int(12426)
}

この配列を再度 encode すると元の文字列が復元できます.

sample03.php
<?php
use Peach\DF\Utf8Codec;

require_once(__DIR__ . "/vendor/autoload.php");

$codec = new Utf8Codec();
$arr   = [84, 101, 115, 116, 58, 26412, 26085, 12399, 26228, 22825, 12394, 12426];
var_dump($codec->encode($arr));

出力結果.

string(26) "Test:本日は晴天なり"

以上です. もしも使えそうな機会があれば使ってみてください. (MIT License)

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0