如果有多个

时间:2016-03-30 08:31:27

标签: php html regex

我试图从html内容中移除PHP中的所有空格,如果它超过一个,例如这样的链:

{{IMG}}                                     {{IMG}}                                     {{IMG}}                                     {{IMG}}                                     {{IMG}}

但不应影响如下句子:关于我们。

是否应该使用正则表达式?有什么想法吗?

PS:变量已经与trim()一起使用;它会删除结尾和开头的空白区域,但不会删除字符之间的空格......

非常感谢你的帮助。

3 个答案:

答案 0 :(得分:2)

$str = preg_replace('/\s+/', ' ', $originalString); echo $str;

这将用一个空格替换所有空格。

答案 1 :(得分:0)

你可以这样做:

示例1:如果空格大于1,则删除空格

<?php
# Test variable
$string = "HELLO     I      HAVE    WHITE SPACEEE!!1";

# Count all whitespaces
# Contains more than 1 whitespace
if(substr_count($string, ' ') > 1) {
    # Example 1: Remove the whitespaces

    $string = preg_replace('/\s+/', '', $string);
}
# Ouput: HELLOIHAVEWHITESPACEEE!!1
echo $string;
?>

示例2:修剪空格

<?php
# Test variable
$string = "HELLO     I      HAVE    WHITE SPACEEE!!1";

# Count all whitespaces
# Contains more than 1 whitespace
if(substr_count($string, ' ') > 1) {
    # Example 2: Remove the whitespaces

    $string = trim($string);
}
# Ouput: HELLO I HAVE WHITE SPACEEE!!1
echo $string;
?>

示例3:替换空格

<?php
# Test variable
$string = "HELLO     I      HAVE    WHITE SPACEEE!!1";

# Count all whitespaces
# Contains more than 1 whitespace
if(substr_count($string, ' ') > 1) {
    # Example 1: Replace the whitespaces

    $string = preg_replace('/\s+/', ' ', $string);
}
# Ouput: HELLO I HAVE WHITE SPACEEE!!1
echo $string;
?>

示例4:

<?php
# Test variable
$string = "HELLO     I     HAVE     WHITE     SPACEEE!!1 And I like bananas.";

# Count all whitespaces
# Contains more than 1 whitespace
if(substr_count($string, ' ') > 1) {
    # Example 1: Replace the whitespaces

    $string = preg_replace('/\s\s+/', '', $string);
}
# Ouput: HELLOIHAVEWHITESPACEEE!!1 And I like bananas.
echo $string;
?>

答案 2 :(得分:0)

如果你问我,这是一个相当离奇的请求。

你可能会做一些事情(从接受的答案中采用,以防其他人认为它有用):

$str = preg_replace('/\s\s+/', '', $originalString);

这将删除所有空格,前提是它们中至少有两个空格。