このエントリーをはてなブックマークに追加

更新日: 2016年2月25日

実行時間: 0.0083

文字列ヘルパー

 文字列ヘルパーは「 system/helper/string_helper.php 」ファイルで、文字列に関する便利な 関数が定義されています。

文字列ヘルパーのロード

 「 CI_Loader 」クラスの「 helper() 」メソッドでロードします。

    $this->load->helper('string');

文字列ヘルパーの関数

trim_slashes($str)

 指定された文字列の先頭、及び、末尾のスラッシュ「/」を取り除いた文字列を返します。

    $this->load->helper('url');
    $uri = uri_string();
    // /practical/helper/string/

    echo trim_slashes($uri);
    // practical/helper/string

strip_slashes($str)

 PHPの関数「stripslashes()」のラッパー関数ですが、この関数では、引数に配列が指定された場合、 再帰的に配列に含まれる文字列データを処理します。

    $string_data = array (
        '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)

 文字列の中に含まれるシングルクォート、ダブルクォート文字を削除して返します。

    echo strip_quotes('This page explain about "string helper".');
    // This page explain about string helper.

quotes_to_entities($str)

 文字列の中に含まれるシングルクォート、ダブルクォート文字をHTML実態参照に変換して返します。

    • 「 ' 」=> '
    • 「 " 」=> "
    echo quotesto_entities('Don\'t call me "Andy".');
    // Don't call me "Andy".

reduce_double_slashes($str)

 URLを表す最初のスラッシュ(http://)の連続を除き、連続するスラッシュを一つのスラッシュに変換した文字列を 返します。

    $url = 'http://your.site/hoge//foo';
    echo reduce_double_slashes($url);
    // http://your.site/hoge/foo

reduce_multiples($str, $character = ',', $trim = FALSE)

 第一引数で指定した文字列の中に、第二引数で指定した文字が連続している文字列を一つに変換した文字列を返します。

 第三引数にTRUEを指定すると、第二引数で指定した文字が文字列の先頭、及び、末尾に ある場合、取り除きます。

    echo reduce_multiples('"a",,,"b"');
    // "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バイト固定 ×
    echo random_string('basic');
    // 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 = 'som_log';
    $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>のレコードをループにより表示する際にスタイルシートで背景色を交互に切り替えています。

    $info_list[] = array(
        '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>';
    nameagescore
    Ichiro 38 88
    Jiro 35 72
    Saburo 33 65
    Shiro 31 91

repeater($data, $num = 1) 一番上に戻る

 PHPの関数「str_repeat()」のラッパーです。

    ehco repeater('<br />', 4);
    // <br /><br /><br /><br />