PHP 8.1.0 Beta 1 available for testing

str_contains

(PHP 8)

str_containsDetermine if a string contains a given substring

Beschreibung

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

Performs a case-sensitive check indicating if needle is contained in haystack.

Parameter-Liste

haystack

The string to search in.

needle

The substring to search for in the haystack.

R├╝ckgabewerte

Returns true if needle is in haystack, false otherwise.

Beispiele

Beispiel #1 Using the empty string ''

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

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Checking the existence of the empty string will always return true

Beispiel #2 Showing case-sensitivity

<?php
$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';
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

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

Anmerkungen

Hinweis: Diese Funktion ist binary safe.

Siehe auch

  • 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() - Findet das erste Vorkommen eines Teilstrings in einem String, unabhängig von Groß- und Kleinschreibung
  • strrpos() - Findet die Position des letzten Vorkommens eines Teilstrings innerhalb einer Zeichenkette
  • strripos() - Findet das letzte Vorkommen der gesuchten Zeichenkette in einem String, unabhängig von Groß- und Kleinschreibung
  • strstr() - Findet das erste Vorkommen eines Strings
  • strpbrk() - Durchsucht einen String nach einem Zeichen aus einer Gruppe von Zeichen
  • substr() - Gibt einen Teil eines Strings zurück
  • preg_match() - Führt eine Suche mit einem regulären Ausdruck durch

add a note add a note

User Contributed Notes 4 notes

up
17
scm6079
3 months ago
For earlier versions of PHP, you can polyfill the str_contains function using the following snippet:

<?php
// 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;
    }
}
?>
up
3
olivertasche+nospam at gmail dot com
4 months 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
up
-9
kadenskinner at gmail dot com
4 months ago
<?php

$needle
= '@';
$haystack = 'user@example.com';

if (!
str_contains($haystack, $needle)){
echo
'There is not an @ in haystack';
}else{
echo
'There is an @ in haystack';
}
up
-37
me at daz dot co dot uk
5 months ago
# Watch out for aberrant partial matches

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

if (str_contains($string, 'ox')) {
    echo 'The string "ox" was found in the string because it was a partial match';
} else {
    echo '"ox" was not found';
}
//output: The string "ox" was found in the string because it was a partial match

# use spaces for full word matching

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

if (str_contains($string, ' ox ')) {
    echo 'The string " ox " was found in the string because it was a partial match';
} else {
    echo '" ox " was not found';
}
//output:  " ox " was not found
To Top