如果变量只包含一个单词

时间:2011-08-30 15:11:08

标签: php variables

我想知道如果变量只包含1个字,我怎么能在PHP中找到。它应该能够识别:“foo”“1326”“; 394aa”等等。

这将是这样的:

$txt = "oneword";

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

感谢。

4 个答案:

答案 0 :(得分:8)

我假设一个单词被定义为由一个空格符号

分隔的任何字符串
$txt = "multiple words";

if(strpos(trim($txt), ' ') !== false)
{
    // multiple words
}
else
{
    // one word
}

答案 1 :(得分:4)

什么定义了一个单词?是否允许空格(也许是名字)?是否允许使用连字符?标点?你的问题定义不明确。

假设您只想确定您的值是否包含空格,请尝试使用正则表达式:

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

<?php
$txt = "oneword";

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

修改 使用正则表达式的好处是,如果您能够熟练使用它们,它们将解决您的许多问题,并使未来的需求变化更加容易。我强烈建议使用正则表达式来简单检查空间的位置,既考虑到今天问题的复杂性(同样,也许空格不是在你的要求中划分单词的唯一方法),以及未来改变要求的灵活性。

答案 2 :(得分:1)

利用PHP中包含的strpos函数。

  

以整数形式返回位置。如果没有找到针,strpos()   将返回布尔值FALSE。

答案 3 :(得分:1)

除了strpos之外,另一种选择是explodecount

$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