如何使用preg_split在2个句子后切断RSS提要描述?

时间:2008-11-27 17:27:56

标签: php

我想对$ the_content中的RSS提要进行描述,然后使用preg_split在2个完整句子(或200个单词,然后是下一个完整句子)之后将其删除。

我试过几次,但我离开了。我知道自己想做什么,但我似乎无法开始做某些工作。

谢谢!

1 个答案:

答案 0 :(得分:1)

正确拆分HTML非常棘手,不值得使用正则表达式。如果您想要HTML,DOM text iterator之类的内容将非常有用。

  1. 将说明转换为文字:

    $text = html_entities_decode(strip_tags($html),ENT_QUOTES,'UTF-8');
    
  2. 这将需要前200个字符(200个字对于一个句子来说有点太多了,不是吗?)然后寻找句末:

    $text = preg_replace('/^(.{200}.*?[.!?]).*$/','\1',$text);
    
  3. 您可以将[.!?]更改为更复杂的内容,例如在标点符号后要求空格或要求附近没有标点符号:

      (?<![^.!?]{5})[.!?](?=[^.!?]{5})
    

    (?=…)是肯定的断言。 (?<!…)负面断言,看起来落后于现在的位置。 {5}表示5次。

    我没有测试过它:)