2011-11-04 87 views
0

我正在將數據從一個數據庫傳輸到另一個數據庫。爲此,我必須將一些值(字符串)映射爲整數,這就是我遇到的一個奇怪問題。PHP無法檢測字符串中的空格

該字符串看起來像這樣$ string =「word anotherword」;所以兩個字(或一個空格)。 當我爆炸字符串或計算空格量時,它會錯過空格。爲什麼?我var_dumped變量,它說這是一個字符串。

以下是我正在使用的代碼。

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

發送到函數的字符串例如是「設計概念」。這將調用下面的函數(其中空格都被忽略)

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

對於給定的這個函數的例子字符串相呼應0是什麼造成這一點,我該如何解決呢?最奇怪的是,對於一個實例來說,該功能完美無缺。

+0

也許這是一個選項卡,而不是空間? –

+0

呃等等...你的函數真的只是迴應輸出並且什麼都不返回? –

+0

適合我。您可能有非空白字符或另一個不可打印字符的字符串。 –

回答

0

很可能是在字符串中所稱的空間可能不會像在一個空間」,但類似的東西,它獲取瀏覽器中呈現在同一就像''一樣。 (對於可能的字符的基本列表:http://php.net/manual/en/function.trim.php

因此,檢查什麼是空白確切可能是解決這個問題。

+0

謝謝!那回答了它 – Roland

3

多於一個空白(在HTML中)總是轉換成一個空格。例如代碼縮進。

如果要打印多個,請逐一使用&nbps;

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

也許他們不是空間。嘗試ord()爲您的字符串中的每個符號。

ORD(「')爲32