How to use strpos to determine if a string exists in input string?
if (strpos($filename, $match) === false)
Otherwise, strpos
will return 0
(the index of the match), which is false
.
The ===
operator will also compare type of the variables (boolean != integer)
strpos
returns false
if the string is not found, and 0
if it is found at the beginning. Use the identity operator to distinguish the two:
if (strpos($filename, $match) === false) {
By the way, this fact is documented with a red background and an exclamation mark in the official documentation.
false === strpos($filename, $match)
The strpos
functionDocs returns false
if not found or 0
if found on position 0
(programmers like to start counting at 0
often):
Warning This function may return Boolean
FALSE
, but may also return a non-Boolean value which evaluates toFALSE
, such as0
or""
. Please read the section on Booleans for more information. Use the===
operator for testing the return value of this function.
The strpos()
function is case-sensitive.
if(strpos($filename, $match) !== false)
{
// $match is present in $filename
}
else
{
// $match is not present in $filename
}
For using case-insensitive.
use stripos()
that is it finds the position of the first occurrence of a string inside another string (case-insensitive)