Je veux une instruction if qui utilise la même chose que mysql something LIKE '%something%'
Je veux construire une déclaration if en php.
if ($something is like %$somethingother%)
C'est possible?
La raison pour laquelle je pose cette question est que je ne veux pas changer la commande MySQL, c'est une longue page avec beaucoup de choses dessus, je ne veux pas créer de fonction différente pour cela.
Faites-moi savoir si cela est possible, si possible, alors comment le faire.
si ($ quelque chose est comme% $ quelque chose%)
C'est possible?
non.
Je ne veux pas changer la commande MySQL, c'est une longue page avec beaucoup de choses dessus
Utilisez un bon éditeur, qui prend en charge les expressions régulières dans find & replace, et réglez-le comme suit:
if(stripos($something, $somethingother) !== FALSE){
}
Je sais, cette question n'est pas réelle mais j'ai résolu le même problème :)
Ma solution:
/**
* SQL Like operator in PHP.
* Returns TRUE if match else FALSE.
* @param string $pattern
* @param string $subject
* @return bool
*/
function like_match($pattern, $subject)
{
$pattern = str_replace('%', '.*', preg_quote($pattern, '/'));
return (bool) preg_match("/^{$pattern}$/i", $subject);
}
Exemples:
like_match('%uc%','Lucy'); //TRUE
like_match('%cy', 'Lucy'); //TRUE
like_match('lu%', 'Lucy'); //TRUE
like_match('%lu', 'Lucy'); //FALSE
like_match('cy%', 'Lucy'); //FALSE
regarder sur strstr function
Utilisez function, cette chaîne de recherche dans une autre chaîne, telle que: strstr
, strpos
, substr_count
.
Utilisez cette fonction qui fonctionne de la même manière que SQLCOMMEoperator, mais renvoie une valeur booléenne et vous pouvez créer votre propre condition avec une autre instruction if.
function like($str, $searchTerm) {
$searchTerm = strtolower($searchTerm);
$str = strtolower($str);
$pos = strpos($str, $searchTerm);
if ($pos === false)
return false;
else
return true;
}
$found = like('Apple', 'app'); //returns true
$notFound = like('Apple', 'lep'); //returns false
if($found){
// This will execute only when the text is like the desired string
}
Mais vous devrez donner une chaîne minuscule pour que cela fonctionne correctement. Exemple de fonction strstr:
$myString = "Hello, world!";
echo strstr( $myString, "wor" ); // Displays 'world!'
echo ( strstr( $myString, "xyz" ) ? "Yes" : "No" ); // Displays 'No'