You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:PHP实现文本多余空格及段落间过量换行的处理方案

PHP处理用户提交内容的多余空格与换行方案

以下是针对用户提交内容中多余空格、过量换行问题的PHP解决方案,可实现段落间保留最多一个空行、单词间仅保留单个空格的效果:

实现代码

// 统一所有系统的换行符为\n
$string = preg_replace('/\R/', "\n", $string);
// 去除字符串首尾的空白字符(含换行、空格)
$string = trim($string);
// 将连续2个及以上的换行替换为2个换行(保留单个空行)
$string = preg_replace('/\n{2,}/', "\n\n", $string);
// 替换行内连续空格为单个空格,保留换行符
$string = preg_replace('/[^\S\n]+/', ' ', $string);

代码说明

  • 统一换行符:使用/\R/正则匹配所有Unicode换行符(涵盖Windows的\r\n、Linux的\n、旧Mac的\r),统一转换为\n,避免跨系统换行格式混乱。
  • 去除首尾空白:trim()函数清除字符串开头和结尾的多余换行、空格等空白内容,避免无效的首尾空行。
  • 压缩段落空行:通过/\n{2,}/匹配连续2个及以上的换行,替换为2个换行(即单个空行),确保段落间仅保留一个分隔空行。
  • 清理行内空格:[^\S\n]+匹配除换行符外的所有连续空白字符(空格、制表符等),替换为单个空格,既清理多余空格又保留行内的正常换行。

效果验证

针对示例输入:

$string = "
first sentence has  w    aaa    yy too many   excess spaces



and too many lines
between


paragraphs.



";

处理后输出:

$string = "first sentence has w aaa yy too many excess spaces

and too many lines
between

paragraphs.";

内容的提问来源于stack exchange,提问作者peppy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 13:19:58