菜鸟常忽略的基础 - 其它Helper ¶
作者:KK
发表日期:2016.9.8
yii\helpers\Markdown(Markdown助手) ¶
下面是2个实用方法,项目需要显示markdown的时候可以用上:
public static function process($markdown, $flavor = 'original')
可以传入markdown字符传然后返回生成的HTMLpublic static function processParagraph($markdown, $flavor = 'original')
同上,只是返回的HTML是一个inline元素(联级元素)
示例:
public function actionTest(){
$markdown = <<<EOL
### 大标题
部署XX软件,命令如下:
cd /a/b/c
yum install xxx
xxx init
xxx start -d /home/user/xxx/profile.conf
rm -rf yyy
配置目录在`/home/user/xxx/profile.conf`
EOL;
$markdownHtml = \yii\helpers\Markdown::process($markdown);
$markdownInlineHtml = \yii\helpers\Markdown::processParagraph($markdown);
return <<<EOL
<link rel="stylesheet" href="http://www.kkh86.com/mylife/bootstrap-3.3.2/css/bootstrap.css">
<div class="container">
$markdownHtml
</div>
EOL;
}
yii\helpers\StringHelper(字符串助手) ¶
方法:
public static function truncate($string, $length, $suffix = '...', $encoding = null, $asHtml = false)
按指定长度截断一个字符串,并且被截断的地方(结尾)会以
...
来代替示例:
echo StringHelper::truncate('我是中国人', 4); //我a是中国... echo StringHelper::truncate('我是a中国人', 4); //我是a中... echo StringHelper::truncate('我是中国人', 5); //我是中国人 echo StringHelper::truncate('我是中国人', 6); //我是中国人 //指定截断后缀 echo StringHelper::truncate('我是中国人', 4, '..'); //我是中国.. echo StringHelper::truncate('我是中国人', 4, '。。。'); //我是中国。。。 echo StringHelper::truncate('我是中国人', 4, ' [更多 阅读原文]'); //我是中国 [更多 阅读原文]
另外它还支持带HTML的字符截断,只要将最后一个参数
$asHtml
设为true:echo StringHelper::truncate('abcd<span>efg</span>hijk', 9, '...', 'UTF-8', true); //我 <span>是a </span>...
不过我目前2.0.9版本输出的结果会多一些空格,不是很满意,应该是个BUG,已经向官方反馈,英语好的同学莫见笑
public static function truncateWords($string, $count, $suffix = '...', $asHtml = false)
同上(truncate),不过这个是针对英文句子做单词截断的
这个应该不会有多少需求要用到,另外对于带有HTML的句子处理比truncate好,不会有啥问题
另外如果想写Widget或其它模板的时候不想撸太多HTML,想用简洁优雅的方式来实现的话多用yii\helpers\Html
而做控制台应用的时候则多用yii\helpers\Console