smarty在评论之前和之后获取部分文本

时间:2016-06-14 14:29:56

标签: php smarty

有文字包含<!-- -->

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris arcu sapien, ultrices quis ultricies vel, sodales pharetra massa. Donec iaculis hendrerit odio, quis facilisis odio aliquet non. <!-- -->Phasellus in euismod nunc, eget hendrerit tortor. In porttitor sem metus, ut porta turpis porta ac. Aenean sed semper mi. Fusce ac augue vel mi gravida bibendum eget a ex. Sed at auctor mauris, ut semper nibh. Sed in nisl nunc.

如何在评论之前获取文本的第一部分(不包括评论本身)以及在评论之后的文本的第二部分(不包括评论本身)?

在下面的代码中,我得到全文

{if $brand && $current_page_num==1}
  {$brand_descr="description_`$brand->url`"}
  {if $category->$brand_descr}
    {$category->$brand_descr}
  {/if}
{/if}

1 个答案:

答案 0 :(得分:2)

你可以在smarty中使用调用php的reg_split:

{$description="/(\s*<!--[^>]*>\s*)+/"|preg_split:$category->$brand_descr}

Before: {$description.0}
After: {$description.1}

我还排除了&lt; - - &gt;之前和之后的空格,如果你不想要这个,请从正则表达式中删除\ s *。