欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

解决node_teaser截出半个<IMG标签的问题

解决node_teaser截出半个<IMG标签的问题

月白风清 的头像

drupal的node_teaser()函数,经常截出半个<IMG标签,导致显示出来的node的摘要总是会有幅图显示出来,但是又缺少SRC,很难看。

今天花了半小时研究了那块代码,给了个快速解决方案。。。

  $img_begin = stristr($teaser, '<IMG');
  while ($temp = stristr(substr($img_begin, 1, strlen($img_begin)), '<IMG')) {
      $img_begin = $temp;
  }
  if ($img_begin) {
      //find >
      if (!strstr($img_begin, '>')) {
        $pos = strpos($body, '>', $max_rpos);
        if ($pos > 0) {
            $teaser = substr($body, 0, $pos + 1);
            $max_rpos = $pos + 1;
        }
      }
  }
 

标红的地方,是个小插曲,原以为怎么也不会出错的地方,特意考虑了不会出现循环,最后还是出现了死循环。。。必须在第二次搜索时跳过前一次匹配的字串,否则就杯具了

 

普通分类: