Если переменная содержит только одно слово - PullRequest
2 голосов
/ 30 августа 2011

Я хотел бы знать, как я могу узнать в PHP, если переменная содержит только 1 слово. Он должен быть в состоянии распознать: "foo", "1326", "394aa" и т. Д.

Было бы что-то вроде этого:

$txt = "oneword";

if($txt == 1 word){ do.this; }else{ do.that; }

Спасибо.

Ответы [ 4 ]

8 голосов
/ 30 августа 2011

Я предполагаю, что слово определяется как любая строка, разделенная одним пробелом

$txt = "multiple words";

if(strpos(trim($txt), ' ') !== false)
{
    // multiple words
}
else
{
    // one word
}
4 голосов
/ 30 августа 2011

Что определяет одно слово? Разрешены ли пробелы (возможно, для имен)? Разрешены ли дефисы? Пунктуация? Ваш вопрос не очень четко определен.

Исходя из того, что вы просто хотите определить, содержит ли ваше значение пробелы, попробуйте использовать регулярные выражения:

http://php.net/manual/en/function.preg-match.php

<?php
$txt = "oneword";

if (preg_match("/ /", $txt)) {
    echo "Multiple words.";
} else {
    echo "One word.";
}
?>

Редактировать Преимущество использования регулярных выражений состоит в том, что, если вы станете опытными в их использовании, они решат многие ваши проблемы и значительно упростят изменение требований в будущем. Я настоятельно рекомендую использовать регулярные выражения над простой проверкой позиции пробела, как для сложности проблемы сегодня (опять же, возможно, пробелы не единственный способ разграничить слова в ваших требованиях), а также для гибкость меняющихся требований в будущем.

1 голос
/ 30 августа 2011

Кроме strpos, альтернативой будет взорвать и считать :

$txt = trim("oneword secondword");
$words = explode( " ", $txt); // $words[0] = "oneword", $words[1] = "secondword"

if (count($words) == 1) 
    do this for one word
else
    do that for more than one word assuming at least one word is inputted
1 голос
/ 30 августа 2011

Использование функции strpos , включенной в PHP.

Возвращает позицию в виде целого числа.Если игла не найдена, strpos () вернет логическое значение FALSE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...