首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在文章清理过程中保留空格和换行符

问在文章清理过程中保留空格和换行符
EN

Stack Overflow用户
提问于 2016-06-30 00:56:36
回答 2查看 266关注 0票数 1

我试着创建像sanitize文章函数这样的东西。我指的是清理或标准化显示在html博客网站上的文章内容的功能。

它必须删除除\n和之外的所有空格。换行符和空格。

我开始使用addcslashes php函数来编码换行符和空格。然后删除所有出现的空格。然后使用带斜杠。然后将多个\x20实例替换为单个实例。因此,它类似于换行符和空格,用于正则表达式操作的临时休眠。

但我没有成功,因为输出中没有输入中确实存在的换行符。

在线版本https://ideone.com/I4oZCJ

我的代码不起作用:

代码语言:javascript
复制
<?php
    $text = 'first line
second line';
    $text = addcslashes($text, "\x20\t");
    $text = preg_replace('/\s+/', ' ', $text);
    $text = stripslashes($text);
    $text = preg_replace('/\s+/', ' ', $text);
    var_dump($text);

如何获得它?

谢谢

EN

回答 2

Stack Overflow用户

发布于 2016-06-30 01:01:26

您可以使用\h类替换水平空格字符:

代码语言:javascript
复制
preg_replace('/\h+/', ' ', $text');

Demo

或者,您可以创建自己的字符类,排除所有不想替换的字符:

代码语言:javascript
复制
 preg_replace('/[^\S\n]+/', ' ', $text);

基本上,这匹配所有非\S (非空格)和非\n (无换行符)的字符。这两种方法都有效。

票数 1
EN

Stack Overflow用户

发布于 2016-06-30 07:08:53

https://ideone.com/hJrH8R

代码语言:javascript
复制
<?php
function clean($text) {
    $text = preg_replace('/[\cK\f\r\x85]+/', '', $text);
    $text = preg_replace('/\h+/', ' ', $text);
    return  $text;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38105819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档