文本助手
文本助手文件包含用于处理文本的函数。
加载此助手
此助手使用以下代码加载
<?php
helper('text');
可用函数
以下函数可用
- random_string([$type = 'alnum'[, $len = 8]])
- 参数:
$type (
string
) – 随机化类型$len (
int
) – 输出字符串长度
- 返回值:
随机字符串
- 返回值类型:
字符串
根据您指定的类型和长度生成随机字符串。对于创建密码或生成随机哈希值很有用。
警告
对于类型:basic、md5 和 sha1,生成的字符串并非加密安全的。因此,这些类型不能用于加密目的或需要不可猜测返回值的目的。从 v4.3.3 版本开始,这些类型已弃用。
第一个参数指定字符串类型,第二个参数指定长度。以下是可用的选项
alpha:仅包含大小写字母的字符串。
alnum:包含大小写字母的字母数字字符串。
basic: [已弃用] 基于
mt_rand()
的随机数(长度忽略)。numeric:数字字符串。
nozero:不包含零的数字字符串。
md5: [已弃用] 基于
md5()
的加密随机数(固定长度为 32)。sha1: [已弃用] 基于
sha1()
的加密随机数(固定长度为 40)。crypto:基于
random_bytes()
的随机字符串。
注意
当您使用 crypto 时,您必须为第二个参数设置偶数。从 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
) – 起始数字
- 返回值:
一个递增的字符串
- 返回值类型:
字符串
通过在字符串末尾追加数字或增加数字来递增字符串。这对于创建文件的“副本”或复制具有唯一标题或标识符的数据库内容很有用。
使用示例
<?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
) – 可变数量的参数
- 返回值:
交替字符串
- 返回值类型:
混合类型
允许在循环中循环时交替使用两个或多个项目。示例
<?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
) – 输入字符串
- 返回值:
一个具有规范化斜杠的字符串
- 返回值类型:
字符串
将字符串中的双斜杠转换为单个斜杠,但 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
) – 输入字符串或字符串数组
- 返回值:
带有剥离斜杠的字符串
- 返回值类型:
混合类型
从字符串数组中删除任何斜杠。
示例
<?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
) – 是否也修剪指定的字符
- 返回值:
减少后的字符串
- 返回值类型:
字符串
减少连续出现的特定字符的多个实例。示例
<?php $string = 'Fred, Bill,, Joe, Jimmy'; $string = reduce_multiples($string, ','); // results in "Fred, Bill, Joe, Jimmy"
如果第三个参数设置为 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 实体的字符串
- 返回值类型:
字符串
将字符串中的单引号和双引号转换为相应的 HTML 实体。示例
<?php $string = "Joe's \"dinner\""; $string = quotes_to_entities($string); // results in "Joe's "dinner""
- strip_quotes($str)
- 参数:
$str (
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
) – 结束字符(通常是省略号)
- 返回值:
单词限制的字符串
- 返回值类型:
字符串
将字符串截断为指定的单词数。示例
<?php $string = 'Here is a nice text string consisting of eleven words.'; $string = word_limiter($string, 4); // Returns: Here is a nice
第三个参数是可选的后缀,添加到字符串中。默认情况下,它添加省略号。
- character_limiter($str[, $n = 500[, $end_char = '…']])
- 参数:
$str (
string
) – 输入字符串$n (
int
) – 字符数$end_char (
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
第三个参数是可选的后缀,添加到字符串中,如果未声明,此助手使用省略号。
注意
如果您需要截断到确切的字符数,请参见下面的
ellipsize()
函数。
- ascii_to_entities($str)
- 参数:
$str (
string
) – 输入字符串
- 返回值:
一个将 ASCII 值转换为实体的字符串
- 返回值类型:
字符串
将 ASCII 值转换为字符实体,包括高 ASCII 和 MS Word 字符,这些字符在网页中使用时会导致问题,以便它们可以根据浏览器设置一致地显示或可靠地存储在数据库中。它在一定程度上依赖于服务器支持的字符集,因此在所有情况下可能无法 100% 可靠,但在大多数情况下,它应该正确识别超出正常范围的字符(如带重音符号的字符)。
示例
<?php $string = ascii_to_entities($string);
- entities_to_ascii($str[, $all = true])
- 参数:
$str (
string
) – 输入字符串$all (
bool
) – 是否也转换不安全的实体
- 返回值:
一个将 HTML 实体转换为 ASCII 字符的字符串
- 返回值类型:
字符串
此函数与
ascii_to_entities()
相反。它将字符实体转换回 ASCII。
- convert_accented_characters($str)
- 参数:
$str (
string
) – 输入字符串
- 返回值:
一个将带重音符号的字符转换后的字符串
- 返回值类型:
字符串
将高 ASCII 字符转换为低 ASCII 等效字符。当需要使用非英语字符但只能安全使用标准 ASCII 字符时,这很有用,例如在 URL 中。
示例
<?php $string = convert_accented_characters($string);
注意
此函数使用配套配置文件 **app/Config/ForeignCharacters.php** 来定义用于音译的 to 和 from 数组。
- word_censor($str, $censored[, $replacement = ''])
- 参数:
$str (
string
) – 输入字符串$censored (
array
) – 要审查的禁用词列表$replacement (
string
) – 用什么替换禁用词
- 返回值:
审查后的字符串
- 返回值类型:
字符串
使您能够审查文本字符串中的单词。第一个参数将包含原始字符串。第二个将包含您不允许的单词数组。第三个(可选)参数可以包含单词的替换值。如果未指定,它们将被井号替换:####。
示例
<?php $disallowed = ['darn', 'shucks', 'golly', 'phooey']; $string = word_censor($string, $disallowed, 'Beep!');
- highlight_code($str)
- 参数:
$str (
string
) – 输入字符串
- 返回值:
使用 HTML 突出显示代码的字符串
- 返回值类型:
字符串
对代码字符串(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 突出显示的短语的字符串
- 返回值类型:
字符串
将在文本字符串中突出显示一个短语。第一个参数将包含原始字符串,第二个参数将包含要突出显示的短语。第三和第四个参数将包含要将短语包装在其中的开始/结束 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 mark 标签,因此建议您将以下 CSS 代码插入样式表中,如果您需要支持此类浏览器mark { background: #ff0; color: #000; };
- word_wrap($str[, $charlim = 76])
- 参数:
$str (
string
) – 输入字符串$charlim (
int
) – 字符限制
- 返回值:
换行后的字符串
- 返回值类型:
字符串
在指定的字符计数处换行文本,同时保留完整的单词。
示例
<?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
) – 用作省略号字符的内容
- 返回值:
省略号字符串
- 返回值类型:
字符串
此函数将从字符串中剥离标签,在定义的最大长度处分割它,并插入省略号。
第一个参数是要省略的字符串,第二个参数是最终字符串中的字符数。第三个参数是省略号应该出现在字符串中的位置,从 0 到 1,从左到右。例如。值为 1 将在字符串的右侧放置省略号,.5 在中间,0 在左侧。
可选的第四个参数是省略号的类型。默认情况下,将插入 …。
示例
<?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
) – 用作省略号字符的内容
- 返回值:
摘录。
- 返回值类型:
字符串
此函数将在中心 $phrase 前后提取 $radius 个字符,并在前后添加省略号。
第一个参数是要提取摘录的文本,第二个是用于计数前后字符的中心词或短语。第三个参数是计数中心短语前后字符的数量。如果未传递短语,则摘录将包含前 $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. ...