2014-12-30 50 views
0

我有一個字符串:我該如何檢查php中的空變量是否具有&nbsp值?

$string 

如果我打印出來沒有回我:

echo $string; // result in browser: blank! in html source code:&nbsp 

我嘗試使用此代碼undererstand $字符串是空的!

if ($string!= '&nbsp' && $string!= ' ' && $string!= '' && $string!= null && $string!= ' ' && !empty($string)) 
echo 'true'; 
else 
echo 'false'; 

但它總是讓我回到'真',爲什麼? //我想在$字符串有很多的空間或某事像那

+0

你分配到'$ string'什麼? – Rizier123

+0

你的邏輯錯誤。考慮一下,如果$ string是「&nbsp」 - 它不是「」,所以它的計算結果爲真! $ string無關緊要,它與其中一個測試相匹配! –

+2

'$ string'不能同時爲空,並且爲'&nbsp'。我認爲你的意思是用'||''或'運算符代替'&&''和'運算符。 –

回答

2

我檢查,這應該工作:

$strings = ['', ' ', ' ', 's', 's ', ' s']; 

foreach ($strings as $string) 
{ 
    $string = trim(str_replace(' ', ' ', $string)); 

    if (strlen($string) != 0) 
     echo $string . ' is not empty'; 
    else 
     echo $string . ' is empty'; 

    echo '<br>'; 
} 

輸出:

is empty 
is empty 
is empty 
s is not empty 
s is not empty 
s is not empty 
+0

'$ string ='0';'? – PeeHaa

+0

你說得對,strlen() '而不是'empty()'? –

0

更健壯的方法可能以此爲出發點......

//correct entities 
$plain=html_entity_decode($string); 

if (preg_match('/[^\s]/', $plain)) { 
    //string contains some non-whitespace 
} 
+1

YU NO'trim()'? – PeeHaa

+0

是的,把我的Perl頭放在那裏,自此無論如何編輯! –

+0

修剪將不起作用: http://php.net/manual/en/function.html-entity -decode.php#refsect1-function.html-entity-decode-notes –

相關問題