Read it later.

Web製作に関するサーバ構成やコーディングネタの備忘録として使ってます。

*

マルチバイト文字列を1文字づつ分解して配列化する – preg_split

   

便利な標準関数があったので、サンプルを。
マルチバイト文字列を1文字づつ分解し配列に格納します。
※UTF-8限定で使って下さい。

本家マニュアルには

$str = 'string';
$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($chars);

こんな感じで書いてるのだけど、以下「u」をつけるのがポイントです。

mb_internal_encoding("UTF-8");
mb_regex_encoding("UTF-8");
$_text1 = "hogehoge hogehoge";
$_text2 = "ほげほげ ほげほげ";

$str = "hogehoge hogehoge";
$chars = preg_split('//u', $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($chars);

$str = "ほげほげ ほげほげ";
$chars = preg_split('//u', $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($chars);

出力結果は下記に。

Array
(
    [0] => h
    [1] => o
    [2] => g
    [3] => e
    [4] => h
    [5] => o
    [6] => g
    [7] => e
    [8] =>
    [9] => h
    [10] => o
    [11] => g
    [12] => e
    [13] => h
    [14] => o
    [15] => g
    [16] => e
)
Array
(
    [0] => ほ
    [1] => げ
    [2] => ほ
    [3] => げ
    [4] =>
    [5] => ほ
    [6] => げ
    [7] => ほ
    [8] => げ
)

 - PHP

  関連記事

php
$_REQUEST($_POST)に全てのアイテムが格納されない – max_input_vars

フォームに大量のINPUTタグを配置している場合に、 部分的には取れるけど、PO …

php
$_SERVER[“REQUEST_TIME_FLOAT”]

$_SERVER[“REQUEST_TIME”]には置き …

php
headers_list

リダイレクトやNot Found処理をする時に、header()を使用しHTTP …

mysql
[MySQL][phpMyAdmin]Allowed memory size of XXXXXX bytes exhausted (tried to allocate XXXXXX bytes)

こんな現象がおきました phpMyAdminでデータベース全体をエクスポートした …

php
[Smarty]確認画面などで使う、Hidden項目を全力で自動生成

入力確認画面や完了通知画面で、前画面(入力画面)のリクエストを元に一気にHidd …

php
Smarty2からSmarty3へのアップグレードガイド

Smarty2を以前から愛用していたのだけど、Smarty3にそろそろ移行しよう …

centos
GeoIPのインストール

IPアドレスから国や都市を取得するためのライブラリが、MaxMind社のGeoI …