smarty 获取评论前后的部分文本

smarty get parts of text before and after comment

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

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.

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

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

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

您可以在 smarty 中调用 php 的 reg_split:

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

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

我还排除了 <-- --> 前后的空格,如果你不想这样,请从正则表达式中删除 \s*。