Проверка строки на наличие пробелов - PullRequest
2 голосов
/ 14 ноября 2009

Есть ли способ, которым я могу проверить пробелы?

Например, я НЕ хочу проверить пробелы, такие как этот ...

$string = "The dog ran away!"; и его вывод Thedogranaway!

Я хочу проверить, есть ли запись ALL только пробел и пробел? ... и вывести ошибку!

По сути, я не хочу иметь возможность вводить все пустые места, но все равно должен выполнять mysql_query.
Кроме того, есть ли способ, которым я могу удалить все пробелы перед строкой, а не из остальной части строки?

$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;
}

Ответы [ 5 ]

7 голосов
/ 14 ноября 2009

Существует также ctype_space (самый простой, imo, и созданный для того, чтобы делать это, не делая кучу ненужных манипуляций со строками):

$str = "   \r\n   \t  ";
if (ctype_space($str)) {
    echo 'All whitespace';
}
// All whitespace
7 голосов
/ 14 ноября 2009

Как насчет:

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

или, возможно, более эффективный:

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

или вы можете использовать регулярное выражение:

if (preg_match("/^\s+$/", $string) != 0)
2 голосов
/ 14 ноября 2009
if ( trim($string) ) {
    // string contains text
}
else {
    // string contains only spaces or is empty
}
1 голос
/ 14 ноября 2009

Возможно, вы ищете метод trim (). В Java это будет String.trim (). Я не знаю, как это должно выглядеть в php, однако эта ссылка может помочь http://php.net/manual/en/function.trim.php

1 голос
/ 14 ноября 2009

Вы можете использовать функцию trim () для пустой строки:

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

Чтобы обрезать начальные пробелы:

ltrim($string)

В предыдущем примере " This is text" вернул бы "Это текст". Также trim () приведет к тому же результату, но trim () удаляет пробелы до и после строки.

...