【问题标题】:PHP format text after strip_tags()strip_tags() 之后的 PHP 格式文本
【发布时间】:2014-11-04 23:47:20
【问题描述】:

我正在解析一个 html 文本以使用 strip_tags() 获取纯文本,并且工作得很好。但是生成的文本在逗号和点之后没有空格

结果示例: Lorem ipsum dolor sit amet,consectetur...adipiscing elit.

我怎样才能把它变成这个: Lorem ipsum dolor sit amet, consectetur... Adipiscing elit.

我想用

str_replace(',', ', ', $text);

但要检测一个或多个点,我认为这不是最好的解决方案。有什么方法可以将点后的第一个字母转换为大写?

我正在寻找一个格式化文本的函数,但运气不好。

谢谢!!

【问题讨论】:

    标签: php formatting


    【解决方案1】:

    这是一个点后大写的函数

    function sentence_case($string) {
        $sentences = preg_split('/([.?!]+)/', $string, -1, PREG_SPLIT_NO_EMPTY|PREG_SPLIT_DELIM_CAPTURE);
        $new_string = '';
        foreach ($sentences as $key => $sentence) {
            $new_string .= ($key & 1) == 0?
                ucfirst(strtolower(trim($sentence))) :
                $sentence.' ';
        }
        return trim($new_string);
    }
    
    print sentence_case('HMM. WOW! WHAT?');
    
    // Outputs: "Hmm. Wow! What?"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多