103 votes

Comment vérifier si une chaîne de caractères contient un texte spécifique ?

<?php
$a = '';

if($a exist 'some text')
    echo 'text';
?>

Supposons que j'ai le code ci-dessus, comment écrire l'instruction if($a exist 'some text') ?

202voto

Dai Points 24530

Utilisez le strpos fonction : http://php.net/manual/en/function.strpos.php

$haystack = "foo bar baz";
$needle   = "bar";

if( strpos( $haystack, $needle ) !== false) {
    echo "\"bar\" exists in the haystack variable";
}

Dans votre cas :

if( strpos( $a, 'some text' ) !== false ) echo 'text';

Notez que mon utilisation du !== (au lieu de != false o == true ou même simplement if( strpos( ... ) ) { ) est due à la "truthy"/"falsy" la nature de la gestion par PHP de la valeur de retour de la fonction strpos .

À partir de PHP 8.0.0, vous pouvez désormais utiliser str_contains

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

18voto

Blender Points 114729

Les chaînes vides sont fausses, donc vous pouvez simplement écrire :

if ($a) {
    echo 'text';
}

Bien que si vous demandez si une sous-chaîne particulière existe dans cette chaîne, vous pouvez utiliser strpos() pour le faire :

if (strpos($a, 'some text') !== false) {
    echo 'text';
}

7voto

Leeish Points 2502

http://php.net/manual/en/function.strpos.php Je pense que vous vous demandez si "un certain texte" existe dans la chaîne, n'est-ce pas ?

if(strpos( $a , 'some text' ) !== false)

3voto

Jesse Points 454

Si vous avez besoin de savoir si un mot existe dans une chaîne de caractères, vous pouvez l'utiliser. Comme votre question n'est pas claire, vous voulez juste savoir si la variable est une chaîne ou non. Où 'mot' est le mot que vous recherchez dans la chaîne.

if (strpos($a,'word') !== false) {
echo 'true';
}

ou utiliser la méthode is_string. La méthode is_string renvoie vrai ou faux sur la variable donnée.

<?php
$a = '';
is_string($a);
?>

2voto

Havenard Points 9023

Vous pouvez utiliser strpos() o stripos() pour vérifier si la chaîne contient l'aiguille donnée. Il retournera la position où elle a été trouvée, sinon il retournera FALSE.

Utilisez les opérateurs === ou `!== pour différencier FALSE de 0 en PHP.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X