Boşlukla için dize denetleme

3 Cevap php

Ben boşlukla kontrol edebilirsiniz bir yolu var mı?

For example, I DO NOT bu gibi boşlukla kontrol etmek istiyorum ...

$string = "The dog ran away!"; and have it output Thedogranaway!

I want to check if there if the entry is ALL whitespace and whitespace only? ...and have it output the error!

Basically, I don't want to be able to enter all whitespace, and still have it do the mysql_query.
Also, is there a way I can strip all the whitespace before the string, and not from the rest of the string?

$string = " "WHITESPACE HERE" The dog ran away!";

if(empty($string) OR $string == " "){ // crappy example of what i'm trying to do
echo "Try again, please enter a message!"; // error
} else {
mysql_query("UPDATE users SET mesg='$string'")or die(mysql_error()); // do something
echo $post;
}

3 Cevap

Ctype_space (gereksiz dize manipülasyon bir demet yapmadan, imo, kolay, ve sadece bunu yapmak için yapılan) da vardır:

$str = "   \r\n   \t  ";
if (ctype_space($str)) {
    echo 'All whitespace';
}
// All whitespace

Nasıl hakkında:

if (strlen(trim($string)) == 0)

ya da, belki daha verimli:

if (trim($string) == '')

ya da, normal bir ifade kullanabilirsiniz:

if (preg_match("/^\s+$/", $string) != 0)

Sen boş bir dize döşemeyi () işlevini kullanabilirsiniz:

if (strlen(trim($string)) == 0){
   //do something
}else{
  // do something else
}

Beyaz boşluk önde kırpmak için:

ltrim($string)

Önceki örnekte " This is text" "Bu metin" dönecekti. Ayrıca trim() aynı sonucu elde ederim, ama trim() dize önce ve sonra boşluk kaldırır.