我只是想弄清楚...
$mystring = "/abc/def/hij";
$find = "/abc";
echo(strpos($mystring, $find) . "<br>");
if (strpos($mystring, $find) >= 0) {
echo("found");
} else {
echo("not found");
}
这将给:
0
发现
$mystring = "/abc/def/hij";
$find = "/fffff";
echo(strpos($mystring, $find) . "<br>");
if (strpos($mystring, $find) >= 0) {
echo("found");
} else {
echo("not found");
}
输出:
[空白]
发现
现在,如果我更改比较器并使用“!= False”而不是““> = 0”
$mystring = "/abc/def/hij";
$find = "/fffff";
echo(strpos($mystring, $find) . "<br>");
if (strpos($mystring, $find) **!= false**) {
echo("found");
} else {
echo("not found");
}
这几乎在所有情况下都有效,除非我在字符串的开头查找子字符串。例如,这将输出“未找到”:
$mystring = "/abc/def/hij";
$find = "/abc";
echo(strpos($mystring, $find) . "<br>");
if (strpos($mystring, $find) != false) {
echo("found");
} else {
echo("not found");
}
那么我该如何做呢?我只想知道字符串中是否存在子字符串,如果子字符串是开头或整个字符串,它应该给我“ true”。
最佳答案
使用!==
运算符进行测试。这将比较类型和值,而不只是值:
$mystring = "/abc/def/hij";
$find = "/abc";
echo(strpos($mystring, $find) . "<br>");
if (strpos($mystring, $find) !== false) {
echo("found");
} else {
echo("not found");
}
关于php - 关于PHP中的strpos的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1004897/