在PHP中使用'if statement'来查找单词

时间:2011-05-14 19:40:43

标签: php if-statement

我有一个包含多行文字的文本文件,例如:

JOHN
MIKE
BEN
JAMES
PETE

我将这些内容读入一个数组,每行文本都放在数组的单独元素中。

然后我测试了数组的每个元素,找到一个短语,说'BEN'

即:

for( $a = 0; $a < 5; $a++ )
{
if ($contents[$a] == "BEN") 
{
echo "$contents[$a]";
}
}

但是这不能识别'BEN'

但如果我正在寻找一个数字而不是一个单词,请来:

JOHN
MIKE
10
JAMES
PETE

或来自......

5
10
15
20
25

并使用相同的代码来查找数字,例如:说'10'

if ($contents[$a] == 10)
    {
    echo "$contents[$a]";
    }

然后这个工作正常,为什么呢?

也...

如果单个文本行已经在数组中,只有当它们从文本文件中读取时,我才会遇到问题......

$contents[0] = "JOHN";
$contents[1] = "MIKE";
$contents[2] = "BEN";
$contents[3] = "JAME";
$contents[4] = "PETE";

4 个答案:

答案 0 :(得分:4)

我假设您从文本文件中读取的字符串包含每行的尾部行尾字符,这就是您找不到BEN的原因(因为该字符串不包括尾部的尾部 - 线字符)。使用trim函数删除字符串中的尾随空格,然后再将它们与字符串进行比较。

答案 1 :(得分:0)

尝试使用array_search()

if ($index = array_search('BEN', $contents) {
    echo $contents[$index];
}

答案 2 :(得分:0)

可能是因为当您从文件中读取行时,您还会在字符串末尾添加换行符(\n)。使用rtrim()将其剥离。

答案 3 :(得分:0)

您还应该查看strcmp()以比较PHP中的字符串。