菜鸟常忽略的基础 - 其它Helper

  • 作者:KK

  • 发表日期:2016.9.8


yii\helpers\Markdown(Markdown助手)

下面是2个实用方法,项目需要显示markdown的时候可以用上:

  • public static function process($markdown, $flavor = 'original')可以传入markdown字符传然后返回生成的HTML

  • public 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