文本

class Cake\View\Helper\TextHelper(View $view, array $config = [])

TextHelper 包含方法,用于使您的视图中的文本更易用和友好。它有助于启用链接、格式化 URL、围绕选定的单词或短语创建文本摘录、突出显示文本块中的关键词,以及优雅地截断长的文本段落。

链接电子邮件地址

Cake\View\Helper\TextHelper::autoLinkEmails(string $text, array $options = [])

根据 $options 中定义的任何选项(请参阅 HtmlHelper::link()),将链接添加到 $text 中的格式良好的电子邮件地址。

$myText = 'For more information regarding our world-famous ' .
    'pastries and desserts, contact [email protected]';
$linkedText = $this->Text->autoLinkEmails($myText);

输出

For more information regarding our world-famous pastries and desserts,
contact <a href="mailto:[email protected]">info@example.com</a>

此方法会自动对其输入进行转义。如果需要,请使用 escape 选项来禁用此功能。

链接 URL

Cake\View\Helper\TextHelper::autoLinkUrls(string $text, array $options = [])

autoLinkEmails() 相同,只是此方法搜索以 https、http、ftp 或 nntp 开头的字符串,并将它们链接起来。

此方法会自动对其输入进行转义。如果需要,请使用 escape 选项来禁用此功能。

链接 URL 和电子邮件地址

对提供的 $text 执行 autoLinkUrls()autoLinkEmails() 中的功能。所有 URL 和电子邮件都将根据提供的 $options 链接起来。

此方法会自动对其输入进行转义。如果需要,请使用 escape 选项来禁用此功能。

其他选项

  • stripProtocol: 从链接标签的开头删除 http://https://。默认情况下关闭。

  • maxLength: 链接标签的最大长度。默认情况下关闭。

  • ellipsis: 要追加到链接标签末尾的字符串。默认为 UTF8 省略号。

将文本转换为段落

Cake\View\Helper\TextHelper::autoParagraph(string $text)

在发现双行返回的地方添加适当的 <p>,在发现单行返回的地方添加 <br>。

$myText = 'For more information
regarding our world-famous pastries and desserts.

contact [email protected]';
$formattedText = $this->Text->autoParagraph($myText);

输出

<p>For more information<br />
regarding our world-famous pastries and desserts.</p>
<p>contact info@example.com</p>

突出显示子字符串

Cake\View\Helper\TextHelper::highlight(string $haystack, string $needle, array $options = [])

使用指定的 $options['format'] 字符串或默认字符串,突出显示 $haystack 中的 $needle

选项

  • format 字符串 - 包含将要突出显示的短语的 HTML 片段

  • html bool - 如果为 true,将忽略任何 HTML 标签,确保仅突出显示正确的文本

示例

// Called as TextHelper
echo $this->Text->highlight(
    $lastSentence,
    'using',
    ['format' => '<span class="highlight">\1</span>']
);

// Called as Text
use Cake\Utility\Text;

echo Text::highlight(
    $lastSentence,
    'using',
    ['format' => '<span class="highlight">\1</span>']
);

输出

截断文本

Cake\View\Helper\TextHelper::truncate(string $text, int $length = 100, array $options)

如果 $text 长于 $length,此方法将在 $length 处截断它,并添加一个后缀,其中包含 'ellipsis'(如果已定义)。如果将 'exact' 作为 false 传递,则截断将在超过 $length 的第一个空格处发生。如果将 'html' 作为 true 传递,将尊重 HTML 标签,不会被切断。

$options 用于传递所有额外的参数,默认情况下具有以下可能的键,所有这些键都是可选的

[
    'ellipsis' => '...',
    'exact' => true,
    'html' => false
]

示例

// Called as TextHelper
echo $this->Text->truncate(
    'The killer crept forward and tripped on the rug.',
    22,
    [
        'ellipsis' => '...',
        'exact' => false
    ]
);

// Called as Text
use Cake\Utility\Text;

echo Text::truncate(
    'The killer crept forward and tripped on the rug.',
    22,
    [
        'ellipsis' => '...',
        'exact' => false
    ]
);

输出

The killer crept...

截断字符串尾部

Cake\View\Helper\TextHelper::tail(string $text, int $length = 100, array $options)

如果 $text 的长度超过 $length,此方法将移除一个长度为差值的初始子字符串,并在前面加上一个由 'ellipsis'(如果已定义)组成的前缀。如果传递 'exact'false,则截断将在截断点之前的第一个空格处发生。

$options 用于传递所有额外的参数,默认情况下具有以下可能的键,所有这些键都是可选的

[
    'ellipsis' => '...',
    'exact' => true
]

示例

$sampleText = 'I packed my bag and in it I put a PSP, a PS3, a TV, ' .
    'a C# program that can divide by zero, death metal t-shirts'

// Called as TextHelper
echo $this->Text->tail(
    $sampleText,
    70,
    [
        'ellipsis' => '...',
        'exact' => false
    ]
);

// Called as Text
use Cake\Utility\Text;

echo Text::tail(
    $sampleText,
    70,
    [
        'ellipsis' => '...',
        'exact' => false
    ]
);

输出

...a TV, a C# program that can divide by zero, death metal t-shirts

提取摘录

Cake\View\Helper\TextHelper::excerpt(string $haystack, string $needle, integer $radius=100, string $ellipsis="...")

$haystack 中提取包含 $needle 的摘录,每侧的字符数由 $radius 决定,并在前缀/后缀中加上 $ellipsis。此方法对于搜索结果特别有用。查询字符串或关键字可以显示在结果文档中。

// Called as TextHelper
echo $this->Text->excerpt($lastParagraph, 'method', 50, '...');

// Called as Text
use Cake\Utility\Text;

echo Text::excerpt($lastParagraph, 'method', 50, '...');

输出

... by $radius, and prefix/suffix with $ellipsis. This method is especially
handy for search results. The query...

将数组转换为句子形式

Cake\View\Helper\TextHelper::toList(array $list, $and='and', $separator=', ')

创建一个用逗号分隔的列表,其中最后两项用 ‘and’ 连接。

$colors = ['red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet'];

// Called as TextHelper
echo $this->Text->toList($colors);

// Called as Text
use Cake\Utility\Text;

echo Text::toList($colors);

输出

red, orange, yellow, green, blue, indigo and violet