使用strpos在PHP中查找字符串

时间:2012-11-27 07:11:17

标签: php

我正在尝试使用PHP在另一个字符串中找到一个字符串(我尝试使用strpos,但没有得到任何结果)。这是我尝试过的:

$assignedBuildings = " , building 1, building 2, building 3";
$buildingName = "building 1";
$assArray = array_map('trim', explode(',', $assignedBuildings));
print_r($assArray);
echo("Looking for: " . $buildingName . " in " . $assignedBuildings);
$pos = in_array($buildingName, $assArray);

print_r让我这样:

Array
(
    [0] => 
    [1] => Test Chapter
    [2] => Test 2 Chapter
    [3] => Test 3 Chapter
)

当我回复$ pos时,我什么都没得到(如“”)。

让我们假装$ buildingName是“Test 3 Chapter”。我怎么在$ assArray中找到它?

5 个答案:

答案 0 :(得分:4)

你有一个错字。

更改

$pos = strpos($assingedBuildings, $buildingToLookFor);

$pos = strpos($assignedBuildings, $buildingToLookFor);

答案 1 :(得分:3)

如果指定建筑物的列表是逗号分隔列表,我建议将其展开,然后在结果数组中检查您的值。所以,像这样:

$assignedbuildings = explode(",",",building 1,building 2,building 3");
$buildingToLookFor = "building 1";
$buildingfound = in_array($buildingtolookfor,$assignedbuildings);

注意事项:

  1. 您需要确保列表中的项目周围没有空格,这些空格不在您的搜索字符串中
  2. 如果您希望搜索不区分大小写,请在两个字符串周围添加strtolower。
  3. 使用strpos功能是有问题的,因为它不会分隔单个条目。因此,如果您的列表包含“Building 10”,则strpos将返回“Building 10”和“Building 1”的值。

答案 2 :(得分:0)

$ assingedBuildings中的错字让你搞砸了。

答案 3 :(得分:0)

您可以使用strstr()进行区分大小写,对于不区分大小写的搜索,请使用stristr() 它返回布尔值。

答案 4 :(得分:0)

您必须将$assingedBuildings更改为$assignedBuildings :),请参阅演示here