Is substring in string php?

(PHP 8)

str_containsDetermine if a string contains a given substring

Description

str_contains(string $haystack, string $needle): bool

Parameters

haystack

The string to search in.

needle

The substring to search for in the haystack.

Return Values

Returns true if needle is in haystack, false otherwise.

Examples

Example #1 Using the empty string ''

if (str_contains('abc''')) {
    echo 
"Checking the existence of the empty string will always return true";
}
?>

The above example will output:

Checking the existence of the empty string will always return true

Example #2 Showing case-sensitivity

$string 'The lazy fox jumped over the fence';

if (

str_contains($string'lazy')) {
    echo 
"The string 'lazy' was found in the string\n";
}

if (

str_contains($string'Lazy')) {
    echo 
'The string "Lazy" was found in the string';
} else {
    echo 
'"Lazy" was not found because the case does not match';
}
?>

The above example will output:

The string 'lazy' was found in the string
"Lazy" was not found because the case does not match

Notes

Note: This function is binary-safe.

See Also

  • str_ends_with() - Checks if a string ends with a given substring
  • str_starts_with() - Checks if a string starts with a given substring
  • stripos() - Find the position of the first occurrence of a case-insensitive substring in a string
  • strrpos() - Find the position of the last occurrence of a substring in a string
  • strripos() - Find the position of the last occurrence of a case-insensitive substring in a string
  • strstr() - Find the first occurrence of a string
  • strpbrk() - Search a string for any of a set of characters
  • substr() - Return part of a string
  • preg_match() - Perform a regular expression match

scm6079

1 year ago

For earlier versions of PHP, you can polyfill the str_contains function using the following snippet:

// based on original work from the PHP Laravel framework
if (!function_exists('str_contains')) {
    function
str_contains($haystack, $needle) {
        return
$needle !== '' && mb_strpos($haystack, $needle) !== false;
    }
}
?>

aisunny7 dot xy at gmail dot com

8 months ago

The polyfill that based on original work from the PHP Laravel framework had a different behavior;

when the $needle is `""` or `null`:
php8's will return `true`;
but, laravel'str_contains will return `false`;

when php8.1, null is deprecated, You can use `$needle ?: ""`;

juliyvchirkov at gmail dot com

1 year ago

// Polyfill for PHP 4 - PHP 7, safe to utilize with PHP 8if (!function_exists('str_contains')) {
    function
str_contains (string $haystack, string $needle)
    {
        return empty(
$needle) || strpos($haystack, $needle) !== false;
    }
}

drupalista dot com dot br at gmail dot com

5 months ago

private function contains(array $needles, string $type, string $haystack = NULL, string $filename = NULL) : bool {
        if (empty($needles)) return FALSE;
        if ($filename)
            $haystack = file_get_contents($filename);

        $now_what = function(string $needle) use ($haystack, $type) : array {
            $has_needle = str_contains($haystack, $needle);
            if ($type === 'any' && $has_needle)
                return ['done' => TRUE, 'return' => TRUE];

            if ($type === 'all' && !$has_needle)
                return ['done' => TRUE, 'return' => FALSE];

            return ['done' => FALSE];
        };

        foreach ($needles as $needle) {
            $check = $now_what($needle);
            if ($check['done'])
                return $check['return'];
        }
        return TRUE;
    }

    function containsAny(array $needles, string $haystack = NULL, string $filename = NULL) : bool {
        return self::contains($needles, 'any', $haystack, $filename);
    }

    function containsAll(array $needles, string $haystack = NULL, string $filename = NULL) : bool {
        return self::contains($needles, 'all', $haystack, $filename);
    }

olivertasche+nospam at gmail dot com

1 year ago

The code from "me at daz dot co dot uk" will not work if the word is
- at the start of the string
- at the end of the string
- at the end of a sentence (like "the ox." or "is that an ox?")
- in quotes
- and so on.

You should explode the string by whitespace, punctations, ... and check if the resulting array contains your word OR try to test with a RegEx like this:
(^|[\s\W])+word($|[\s\W])+

Disclaimer: The RegEx may need some tweaks

AuxData

10 months ago

Until PHP 8 was released, many-a-programmer were writing our own contain() functions. Mine also handles needles with logical ORs (set to '||').
Here it is.

function contains($haystack, $needle, $offset){
    $OR = '||';
    $result = false;

        $ORpos = strpos($needle, $OR, 0);
    if($ORpos !== false){ //ORs exist in the needle string
        $needle_arr = explode($OR, $needle);
        for($i=0; $i < count($needle_arr); $i++){
            $pos = strpos($haystack, trim($needle_arr[$i]), $offset);
            if($pos !== false){
                $result = true;
                break;
            }
        }       
    } else {
        $pos = strpos($haystack, trim($needle), $offset);
        if($pos !== false){
          $result = true;
        }
    }
  return($result);
}

Call: contains("Apple Orange Banana", "Apple || Walnut", 0);
Returns: true

kadenskinner at gmail dot com

1 year ago

$needle

= '@';
$haystack = '';

if (!

str_contains($haystack, $needle)){
echo
'There is not an @ in haystack';
}else{
echo
'There is an @ in haystack';
}

How do you check if a substring is in a string PHP?

You can use the PHP strpos() function to get the position of the first occurrence of a substring in a string. The function will return false if it cannot find the substring.

How will you locate a string within a string in PHP?

The strpos() function finds the position of the first occurrence of a string inside another string. Note: The strpos() function is case-sensitive.

Is str contains case

Note that strpos() is case sensitive, if you want a case-insensitive search, use stripos() instead.

How do I check if a string contains something?

The includes() method returns true if a string contains a specified string. Otherwise it returns false .