テキストヘルパー
テキストヘルパーファイルには、テキストの操作を支援する関数が含まれています。
このヘルパーのロード
このヘルパーは、次のコードを使用してロードされます
<?php
helper('text');
使用可能な関数
次の関数が利用可能です
- random_string([$type = 'alnum'[, $len = 8]])
- パラメーター:
$type (
string
) – ランダム化のタイプ$len (
int
) – 出力文字列の長さ
- 戻り値:
ランダムな文字列
- 戻り値の型:
string
指定したタイプと長さに基づいてランダムな文字列を生成します。パスワードの作成やランダムハッシュの生成に役立ちます。
警告
タイプ:basic、md5、およびsha1の場合、生成された文字列は暗号学的に安全ではありません。したがって、これらのタイプは、暗号化の目的や、推測不可能な戻り値が必要な目的には使用できません。v4.3.3以降、これらのタイプは非推奨です。
最初のパラメーターは文字列のタイプを指定し、2番目のパラメーターは長さを指定します。次の選択肢があります。
alpha:小文字と大文字の文字のみを含む文字列。
alnum:小文字と大文字の英数字を含む文字列。
basic:[非推奨]
mt_rand()
に基づいた乱数(長さは無視されます)。numeric:数値文字列。
nozero:ゼロを含まない数値文字列。
md5:[非推奨]
md5()
に基づいた暗号化された乱数(固定長32)。sha1:[非推奨]
sha1()
に基づいた暗号化された乱数(固定長40)。crypto:
random_bytes()
に基づいたランダムな文字列。
注意
cryptoを使用する場合は、2番目のパラメーターに偶数を設定する必要があります。v4.2.2以降、奇数を設定すると、
InvalidArgumentException
がスローされます。注意
v4.3.3以降、alpha、alnum、およびnozeroは
random_byte()
を使用し、numericはrandom_int()
を使用します。以前のバージョンでは、暗号学的に安全ではないstr_shuffle()
を使用していました。使用例
<?php echo random_string('alnum', 16);
- increment_string($str[, $separator = '_'[, $first = 1]])
- パラメーター:
$str (
string
) – 入力文字列$separator (
string
) – 重複した数を追加するための区切り文字$first (
int
) – 開始番号
- 戻り値:
インクリメントされた文字列
- 戻り値の型:
string
文字列に番号を追加するか、番号を増やして文字列をインクリメントします。ユニークなタイトルまたはスラッグを持つファイルの「コピー」を作成したり、データベースコンテンツを複製したりするのに役立ちます。
使用例
<?php echo increment_string('file', '_'); // "file_1" echo increment_string('file', '-', 2); // "file-2" echo increment_string('file_4'); // "file_5"
- alternator($args)
- パラメーター:
$args (
mixed
) – 可変数の引数
- 戻り値:
交互に表示された文字列
- 戻り値の型:
mixed
ループを繰り返すときに、2つ以上の項目を交互に表示できます。例
<?php for ($i = 0; $i < 10; $i++) { echo alternator('string one', 'string two'); }
必要なだけパラメーターを追加でき、ループの反復ごとに次の項目が返されます。
<?php for ($i = 0; $i < 10; $i++) { echo alternator('one', 'two', 'three', 'four', 'five'); }
注意
この関数への複数の別々の呼び出しを使用するには、引数なしで関数を呼び出して再初期化します。
- reduce_double_slashes($str)
- パラメーター:
$str (
string
) – 入力文字列
- 戻り値:
正規化されたスラッシュを持つ文字列
- 戻り値の型:
string
文字列内のダブルスラッシュを、URLプロトコルのプレフィックス(例:http://)にあるものを除き、シングルスラッシュに変換します。
例
<?php $string = 'http://example.com//index.php'; echo reduce_double_slashes($string); // results in "http://example.com/index.php"
- strip_slashes($data)
- パラメーター:
$data (
mixed
) – 入力文字列または文字列の配列
- 戻り値:
スラッシュが削除された文字列
- 戻り値の型:
mixed
文字列の配列からスラッシュを削除します。
例
<?php $str = [ 'question' => "Is your name O\\'reilly?", 'answer' => "No, my name is O\\'connor.", ]; $str = strip_slashes($str);
上記は次の配列を返します
<?php [ 'question' => "Is your name O'reilly?", 'answer' => "No, my name is O'connor.", ];
注意
歴史的な理由から、この関数は文字列の入力も受け入れて処理します。ただし、これは
stripslashes()
のエイリアスにすぎません。
- reduce_multiples($str[, $character = ''[, $trim = false]])
- パラメーター:
$str (
string
) – 検索するテキスト$character (
string
) – 縮小する文字$trim (
bool
) – 指定した文字をトリムするかどうか
- 戻り値:
縮小された文字列
- 戻り値の型:
string
特定の文字が連続して出現する複数のインスタンスを縮小します。例
<?php $string = 'Fred, Bill,, Joe, Jimmy'; $string = reduce_multiples($string, ','); // results in "Fred, Bill, Joe, Jimmy"
3番目のパラメーターがtrueに設定されている場合、文字列の先頭と末尾にある文字の出現を削除します。例
<?php $string = ',Fred, Bill,, Joe, Jimmy,'; $string = reduce_multiples($string, ', ', true); // results in "Fred, Bill, Joe, Jimmy"
- quotes_to_entities($str)
- パラメーター:
$str (
string
) – 入力文字列
- 戻り値:
引用符がHTMLエンティティに変換された文字列
- 戻り値の型:
string
文字列内の一重引用符と二重引用符を対応するHTMLエンティティに変換します。例
<?php $string = "Joe's \"dinner\""; $string = quotes_to_entities($string); // results in "Joe's "dinner""
- strip_quotes($str)
- パラメーター:
$str (
string
) – 入力文字列
- 戻り値:
引用符が削除された文字列
- 戻り値の型:
string
文字列から一重引用符と二重引用符を削除します。例
<?php $string = "Joe's \"dinner\""; $string = strip_quotes($string); // results in "Joes dinner"
- word_limiter($str[, $limit = 100[, $end_char = '…']])
- パラメーター:
$str (
string
) – 入力文字列$limit (
int
) – リミット$end_char (
string
) – 終端文字(通常は省略記号)
- 戻り値:
単語数を制限した文字列
- 戻り値の型:
string
文字列を指定された単語数で切り詰めます。例
<?php $string = 'Here is a nice text string consisting of eleven words.'; $string = word_limiter($string, 4); // Returns: Here is a nice
3番目のパラメータは、文字列に追加されるオプションの接尾辞です。デフォルトでは省略記号が追加されます。
- character_limiter($str[, $n = 500[, $end_char = '…']])
- パラメーター:
$str (
string
) – 入力文字列$n (
int
) – 文字数$end_char (
string
) – 終端文字(通常は省略記号)
- 戻り値:
文字数を制限した文字列
- 戻り値の型:
string
文字列を指定された文字数で切り詰めます。単語の完全性を維持するため、文字数は指定した数よりわずかに多くなったり少なくなったりする場合があります。
例
<?php $string = 'Here is a nice text string consisting of eleven words.'; $string = character_limiter($string, 20); // Returns: Here is a nice text string
3番目のパラメータは、文字列に追加されるオプションの接尾辞です。宣言されていない場合、このヘルパーは省略記号を使用します。
注意
正確な文字数で切り詰める必要がある場合は、以下の
ellipsize()
関数を参照してください。
- ascii_to_entities($str)
- パラメーター:
$str (
string
) – 入力文字列
- 戻り値:
ASCII値をエンティティに変換した文字列
- 戻り値の型:
string
ASCII値を文字エンティティに変換します。これには、Webページで使用すると問題を引き起こす可能性のある上位ASCIIおよびMS Wordの文字が含まれます。これにより、ブラウザの設定に関係なく一貫して表示したり、データベースに確実に保存したりできます。サーバーでサポートされている文字セットに依存するため、すべての場合に100%信頼できるとは限りませんが、ほとんどの場合、通常の範囲外の文字(アクセント付き文字など)を正しく識別する必要があります。
例
<?php $string = ascii_to_entities($string);
- entities_to_ascii($str[, $all = true])
- パラメーター:
$str (
string
) – 入力文字列$all (
bool
) – 安全でないエンティティも変換するかどうか
- 戻り値:
HTMLエンティティをASCII文字に変換した文字列
- 戻り値の型:
string
この関数は、
ascii_to_entities()
の反対を行います。文字エンティティをASCIIに戻します。
- convert_accented_characters($str)
- パラメーター:
$str (
string
) – 入力文字列
- 戻り値:
アクセント付き文字を変換した文字列
- 戻り値の型:
string
上位ASCII文字を、下位ASCII文字に変換します。たとえば、URLなど、標準ASCII文字のみが安全に使用される必要がある場所で、非英語文字を使用する必要がある場合に役立ちます。
例
<?php $string = convert_accented_characters($string);
注意
この関数は、変換元の配列と変換先の配列を定義するために、コンパニオン設定ファイル app/Config/ForeignCharacters.php を使用します。
- word_censor($str, $censored[, $replacement = ''])
- パラメーター:
$str (
string
) – 入力文字列$censored (
array
) – 検閲対象の不適切な単語のリスト$replacement (
string
) – 不適切な単語の置換先
- 戻り値:
検閲された文字列
- 戻り値の型:
string
テキスト文字列内の単語を検閲できます。最初のパラメータには元の文字列が含まれます。2番目には、許可しない単語の配列が含まれます。3番目(オプション)のパラメータには、単語の置換値を格納できます。指定しない場合は、ポンド記号(####)に置き換えられます。
例
<?php $disallowed = ['darn', 'shucks', 'golly', 'phooey']; $string = word_censor($string, $disallowed, 'Beep!');
- highlight_code($str)
- パラメーター:
$str (
string
) – 入力文字列
- 戻り値:
HTMLを介して強調表示されたコードを含む文字列
- 戻り値の型:
string
コード(PHP、HTMLなど)の文字列を色分けします。例
<?php $string = highlight_code($string);
この関数はPHPの
highlight_string()
関数を使用するため、使用される色は php.ini ファイルで指定されたものです。
- highlight_phrase($str, $phrase[, $tag_open = '<mark>'[, $tag_close = '</mark>']])
- パラメーター:
$str (
string
) – 入力文字列$phrase (
string
) – 強調表示するフレーズ$tag_open (
string
) – 強調表示に使用される開始タグ$tag_close (
string
) – 強調表示の終了タグ
- 戻り値:
HTMLを介して強調表示されたフレーズを含む文字列
- 戻り値の型:
string
テキスト文字列内のフレーズを強調表示します。最初のパラメータには元の文字列、2番目には強調表示するフレーズが含まれます。3番目と4番目のパラメータには、フレーズを囲む開始/終了HTMLタグが含まれます。
例
<?php $string = 'Here is a nice text string about nothing in particular.'; echo highlight_phrase($string, 'nice text', '<span style="color:#990000;">', '</span>');
上記のコードは以下を出力します。
Here is a <span style="color:#990000;">nice text</span> string about nothing in particular.
注意
この関数は、以前はデフォルトで
<strong>
タグを使用していました。古いブラウザは新しいHTML5マークタグをサポートしていない可能性があるため、そのようなブラウザをサポートする必要がある場合は、次のCSSコードをスタイルシートに挿入することをお勧めします。mark { background: #ff0; color: #000; };
- word_wrap($str[, $charlim = 76])
- パラメーター:
$str (
string
) – 入力文字列$charlim (
int
) – 文字数制限
- 戻り値:
ワードラップされた文字列
- 戻り値の型:
string
指定された文字数でテキストを折り返し、完全な単語を維持します。
例
<?php $string = 'Here is a simple string of text that will help us demonstrate this function.'; echo word_wrap($string, 25); /* * Would produce: * Here is a simple string * of text that will help us * demonstrate this * function. * * Excessively long words will be split, but URLs will not be. */
- ellipsize($str, $max_length[, $position = 1[, $ellipsis = '…']])
- パラメーター:
$str (
string
) – 入力文字列$max_length (
int
) – 文字列の長さ制限$position (
mixed
) – 分割する位置(整数または浮動小数点数)$ellipsis (
string
) – 省略記号として使用するもの
- 戻り値:
省略記号化された文字列
- 戻り値の型:
string
この関数は、文字列からタグを削除し、定義された最大長で分割し、省略記号を挿入します。
最初のパラメータは省略記号化する文字列、2番目は最終文字列の文字数です。3番目のパラメータは、文字列内の省略記号を表示する場所を、左から右に 0 から 1 で指定します。たとえば、値が 1 の場合、省略記号は文字列の右側に配置され、.5 は中央に、0 は左側に配置されます。
オプションの4番目のパラメータは、省略記号の種類です。デフォルトでは、… が挿入されます。
例
<?php $str = 'this_string_is_entirely_too_long_and_might_break_my_design.jpg'; echo ellipsize($str, 32, .5);
出力
this_string_is_e…ak_my_design.jpg
- excerpt($text, $phrase = false, $radius = 100, $ellipsis = '...')
- パラメーター:
$text (
string
) – 抜粋を抽出するテキスト$phrase (
string
) – テキストを抽出するフレーズまたは単語$radius (
int
) – $phraseの前後の文字数$ellipsis (
string
) – 省略記号として使用するもの
- 戻り値:
抜粋。
- 戻り値の型:
string
この関数は、中央の$phraseの前後に$radiusの文字数を抽出し、前後に省略記号を付けます。
最初のパラメータは抜粋する元のテキスト、2番目のパラメータは前後のカウント対象となる中心的な単語またはフレーズです。3番目のパラメータは中心的なフレーズの前後にカウントする文字数です。フレーズが渡されなかった場合、抜粋は最初の$radius文字を含み、最後に省略記号が付加されます。
例
<?php $text = 'Ut vel faucibus odio. Quisque quis congue libero. Etiam gravida eros lorem, eget porttitor augue dignissim tincidunt. In eget risus eget mauris faucibus molestie vitae ultricies odio. Vestibulum id ultricies diam. Curabitur non mauris lectus. Phasellus eu sodales sem. Integer dictum purus ac enim hendrerit gravida. Donec ac magna vel nunc tincidunt molestie sed vitae nisl. Cras sed auctor mauris, non dictum tortor. Nulla vel scelerisque arcu. Cras ac ipsum sit amet augue laoreet laoreet. Aenean a risus lacus. Sed ut tortor diam.'; echo excerpt($text, 'Donec');
出力
... non mauris lectus. Phasellus eu sodales sem. Integer dictum purus ac enim hendrerit gravida. Donec ac magna vel nunc tincidunt molestie sed vitae nisl. Cras sed auctor mauris, non dictum tortor. ...