文字列ヘルパー
文字列ヘルパーは「 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バイト固定 | × |
// 1606602312
echo random_string('alnum');
// 5rMHczTG
echo random_string('numeric');
// 94468872
echo random_string('nozero');
// 53765985
echo random_string('alpha');
// YjKOXHBL
echo random_string('unique');
echo random_string('md5');
// 7c41819c7f3ee2fb41f940c49a12e81c
echo random_string('encrypt');
echo random_string('sha1');
// e8675b82118c88f978a525577d85663732a8ddfc
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 />