TextHelper 包含方法,用于使您的视图中的文本更易用和友好。它有助于启用链接、格式化 URL、围绕选定的单词或短语创建文本摘录、突出显示文本块中的关键词,以及优雅地截断长的文本段落。
根据 $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
选项来禁用此功能。
与 autoLinkEmails()
相同,只是此方法搜索以 https、http、ftp 或 nntp 开头的字符串,并将它们链接起来。
此方法会自动对其输入进行转义。如果需要,请使用 escape
选项来禁用此功能。
对提供的 $text
执行 autoLinkUrls()
和 autoLinkEmails()
中的功能。所有 URL 和电子邮件都将根据提供的 $options
链接起来。
此方法会自动对其输入进行转义。如果需要,请使用 escape
选项来禁用此功能。
其他选项
stripProtocol
: 从链接标签的开头删除 http://
和 https://
。默认情况下关闭。
maxLength
: 链接标签的最大长度。默认情况下关闭。
ellipsis
: 要追加到链接标签末尾的字符串。默认为 UTF8 省略号。
在发现双行返回的地方添加适当的 <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>
使用指定的 $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>']
);
输出
从提供的 $text
中删除任何 HTML 链接。
如果 $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...
如果 $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
从 $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...
创建一个用逗号分隔的列表,其中最后两项用 ‘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