文字列ヘルパー
文字列ヘルパーは「 system/helper/string_helper.php 」ファイルで、文字列に関する便利な 関数が定義されています。
文字列ヘルパーのロード
「 CI_Loader 」クラスの「 helper() 」メソッドでロードします。
文字列ヘルパーの関数
trim_slashes($str)
指定された文字列の先頭、及び、末尾のスラッシュ「/」を取り除いた文字列を返します。
$uri = uri_string();
// /practical/helper/string
echo trim_slashes($uri);
// practical/helper/string
strip_slashes($str)
PHPの関数「stripslashes()」のラッパー関数ですが、この関数では、引数に配列が指定された場合、 再帰的に配列に含まれる文字列データを処理します。
'what\'s up ?',
'how\'s it going ?',
'I don\'t know.',
);
$striped_data = strip_slashes($string_data);
var_dump($striped_data);
/*
array(3) {
[0]=>
string(11) "what's up ?"
[1]=>
string(16) "how's it going ?"
[2]=>
string(13) "I don't know."
}
*/
strip_quotes($str)
文字列の中に含まれるシングルクォート、ダブルクォート文字を削除して返します。
// This page explain about string helper.
quotes_to_entities($str)
文字列の中に含まれるシングルクォート、ダブルクォート文字をHTML実態参照に変換して返します。
- 「 ' 」=> '
- 「 " 」=> "
// Don't call me "Andy".
reduce_double_slashes($str)
URLを表す最初のスラッシュ(http://)の連続を除き、連続するスラッシュを一つのスラッシュに変換した文字列を 返します。
echo reduce_double_slashes($url);
// http://your.site/hoge/foo
reduce_multiples($str, $character = ',', $trim = FALSE)
第一引数で指定した文字列の中に、第二引数で指定した文字が連続している文字列を一つに変換した文字列を返します。
第三引数にTRUEを指定すると、第二引数で指定した文字が文字列の先頭、及び、末尾に ある場合、取り除きます。
// "a","b"
echo reduce_multiples('__a___b__', '_');
// _a_b_
echo reduce_multiples('~~a~~b~~', '~', TRUE);
// a~b
random_string($type = 'alnum', $len = 8) 一番上に戻る
ランダムな文字列を生成して返します。
第一引数は、ランダム文字列の生成方法を指定します。
第二引数は、ランダム文字列の文字数を指定します。
第一引数に指定することができるランダム文字のタイプは以下のものがあります。
type | 説明 | 桁数指定可否 |
---|---|---|
basic | 「mt_rand()」関数が返す値です。 | × |
alnum | 大文字・小文字のアルファベット、数字からなる文字列 | ○ |
numeric | 「0~9」の数字からなる文字列 | ○ |
nozero | 「1~9」の数字からなる文字列 | ○ |
alpha | 大文字・小文字のアルファベットからなる文字列 | ○ |
unique md5 |
mt_rand()の乱数を基にuniqid()関数で生成された文字列をmd5()関数で求めたハッシュ文字列。32バイト固定 | × |
encrypt sha1 |
mt_rand()の乱数を基にuniqid()関数で生成された文字列をsha1()関数で求めたハッシュ文字列。40バイト固定 | × |
// 2106122714
echo random_string('alnum');
// MKK0wVCa
echo random_string('numeric');
// 63926149
echo random_string('nozero');
// 58158561
echo random_string('alpha');
// KKTKUCMd
echo random_string('unique');
echo random_string('md5');
// cb06ee2e0fc0953e8257b547f3b125e2
echo random_string('encrypt');
echo random_string('sha1');
// 201f1be2537a7a7b7856f30d9fd16c4de20aee63
increment_string($str, $separator = '_', $first = 1) 一番上に戻る
第一引数で指定された文字列の末尾が、第二引数で指定されたセパレータ文字+数値でない場合は、
第三引数で指定した数値を付加した文字列を返します。
(デフォルトは「 _1 」)
第一引数で指定された文字列の末尾が、第二引数で指定されたセパレータ文字+数値の場合、その数値をインクリメント した文字列に変換して返します。
$str = increment_string($str);
echo $str;
// som_log_1
$str = increment_string($str);
echo $str;
// som_log_2
$str = increment_string($str);
echo $str;
// som_log_3
alternator() 一番上に戻る
一つのプロセス中で、この関数が実行される度に、複数指定された引数を順番に返します。
引数は理論的にはいくつでも指定することが可能です。
引数を空にして実行することで、内部で保持されている順番を初期化できます。
下記の例では、<table>のレコードをループにより表示する際にスタイルシートで背景色を交互に切り替えています。
'name' => 'Ichiro',
'age' => '38',
'score' => '88',
);
$info_list[] = array(
'name' => 'Jiro',
'age' => '35',
'score' => '72',
);
$info_list[] = array(
'name' => 'Saburo',
'age' => '33',
'score' => '65',
);
$info_list[] = array(
'name' => 'Shiro',
'age' => '31',
'score' => '91',
);
echo '<table style="width:300px;">';
echo '<tr">';
echo ' <th>name</th><th>age</th><th>score</th>';
echo '</tr">';
alternator();
foreach ($info_list as $info) {
echo '<tr style="background-color:' . alternator('#c0ffc0', '#ff80ff') . ';">';
echo ' <td>' . $info['name'] . '</td>';
echo ' <td>' . $info['age'] . '</td>';
echo ' <td>' . $info['score']. '</td>';
echo '</tr>';
}
echo '</table>';
name | age | score |
---|---|---|
Ichiro | 38 | 88 |
Jiro | 35 | 72 |
Saburo | 33 | 65 |
Shiro | 31 | 91 |
repeater($data, $num = 1) 一番上に戻る
PHPの関数「str_repeat()」のラッパーです。
// <br /><br /><br /><br />