PHP不检测字符串中的空白


PHP doesn't detect white space in string

我正在从一个数据库传输数据到另一个数据库。为此,我必须将一些值(字符串)映射为整数,这就是我遇到奇怪问题的地方。

字符串看起来像这样$string = "word anotherword";所以两个单词(或者一个空格)。当我将字符串展开或计算空格的数量时,它会错过空白。为什么?我把变量var_dump了,它说这是一个字符串。

下面是我使用的代码。

echo "<strong>Phases</strong>: ".$fases = mapPhase($lijst[DB_PREFIX.'projectPhase']);

发送给函数的字符串例如是"Design Concept"。这会调用以下函数(其中空格会被忽略)

function mapPhase($phases){
    echo "Whitespace amount: ".substr_count($phases, ' ')."<br />";
}

对于给出此函数的示例字符串,返回0。造成这种情况的原因是什么,我该如何解决?最奇怪的是,在一个实例中,这个函数工作得很完美。

多个空格(在HTML中)总是被转换成一个空格。例如代码缩进。

如果要打印多个,请一个一个地使用&nbps;

function mapPhase($phases){
    echo 'Whitespace amount: '.substr_count($phases, '&nbsp;').'<br />';
}

很可能字符串中所谓的空格可能不是' '中的空格,而是类似的东西,在浏览器中以与' '相同的方式呈现。(对于可能的字符的基本列表:http://php.net/manual/en/function.trim.php)

因此,检查空格究竟是什么可能是解决该问题的方法。

也许它们甚至不是空格。对字符串中的每个符号尝试ord()。

ord(' ')是32.

您可以使用:

$string = preg_replace('/'s+/', '', $string);