首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除PHP中的WhiteSpace

删除PHP中的WhiteSpace
EN

Stack Overflow用户
提问于 2013-03-23 22:30:25
回答 2查看 1.6K关注 0票数 3

我在处理一些多余的空白,我想移除。举个例子:

代码语言:javascript
复制
Envelopes/Env. Thick/Env. Thin      0 pages


Label      0 pages


Hagaki      0 pages



Replace Count


Drum Unit      0


Toner      0

我尝试过使用preg_replace('/\s\s+/', ' ', $content);,但结果与我所期望的不一样。使用preg_replace的输出:

Envelopes/Env. Thick/Env. Thin 0 pages Label 0 pages Hagaki 0 pages Replace Count Drum Unit 0 Toner 0

我想要的:

信封/环境厚/环境薄0页标签0页 Hagaki 0页 更换计数鼓单元0 Toner 0

我的代码:

代码语言:javascript
复制
<?php

$cw=curl_init("http://192.168.1.135/printer/maininfo.html");
$txtfl=fopen("printermtpage.txt","w");

curl_setopt($cw, CURLOPT_FILE, $txtfl);
curl_setopt($cw, CURLOPT_HEADER, false);

curl_exec($cw);

curl_close($cw);

$file="printermtpage.txt";
$txtopentoread=fopen("printermtpage.txt","r");
$txtread=fread($txtopentoread,filesize($file));

$notags=strip_tags(html_entity_decode($txtread));
$remblanks=preg_replace('/\s\s+/', ' ', $notags);

fclose($txtfl);

?>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-23 22:36:17

RegEx \s[\r\n\f\t\v ]匹配,由于不需要删除换行符(或类中的其他行),所以可以使用:

代码语言:javascript
复制
$remblanks=preg_replace('/[ \t]+/',' ',$notags);

在这里解释演示:http://regex101.com/r/tS0vG7

更新

去掉RegEx空格字符的高级2+:

代码语言:javascript
复制
preg_replace('/(?|([ \t]){2,}|(?:\r?(\n)){2,})/','\1',$notags);

在这里解释演示:http://regex101.com/r/nU4fU2

票数 3
EN

Stack Overflow用户

发布于 2013-03-23 22:36:19

我认为问题在于\s也匹配换行符(\n)。所以你把你的新行转换成空格,有效地把它们放在一条线上。

尝试使用\[:blank:\]只匹配空格和制表符。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15592843

复制
相关文章

相似问题

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