我想达到的效果是,摘取文章的前200字,如果200字内有图片的话,也显示图片。
网上有方法是用$this->excerpt()替换$this->content('....'),但是这种方法只能摘取文字,而不能摘取图片。
我尝试 <?php mb_substr($this->content(), 0, 100, 'utf-8');>但是显示的结果跟$this->content('....')完全一样,难道环境不支持mb_substr,但是也没有报错呢?
我想达到的效果是,摘取文章的前200字,如果200字内有图片的话,也显示图片。
网上有方法是用$this->excerpt()替换$this->content('....'),但是这种方法只能摘取文字,而不能摘取图片。
我尝试 <?php mb_substr($this->content(), 0, 100, 'utf-8');>但是显示的结果跟$this->content('....')完全一样,难道环境不支持mb_substr,但是也没有报错呢?
首先你的代码是错误的。
$this->content()
其实就是打印内容,并且函数是没有输出的,所以实际上你的mb_substr
函数压根就没法执行,当然和$this->content('...')
是一样了,实际上你这里应该用$this->content
才行,这个才是保存文章内容的变量。如果要实现你的思路的话可按照以下思路编写代码:[图]
替换(也可以是别的),并根据顺序把标签原始内容存储在数组内。strip_tags
过滤掉其他无关标签之后用strim_width
取前200个字。[图]
并按照匹配顺序从原始内容数组中读取IMG标签并替换回去。