PHP Как вещь, похожая на MySQL Как, for if statement?
Мне нужен оператор if, который использует то же самое, что и mysql something LIKE '%something%'
Я хочу построить оператор if в php.
if ($something is like %$somethingother%)
Возможно ли это?
Причина, по которой я задаю этот вопрос, заключается в том, что я не хочу менять команду MySQL, это длинная страница со многими вещами на ней, я не хочу создавать для нее другую функцию.
Сообщите мне, если это возможно, если возможно, то как это сделать.
Ответы
Ответ 1
if ($ что-то похоже на% $somethingother%)
Возможно ли это?
нет.
Я не хочу менять команду MySQL, это длинная страница со многими вещами на ней
Используйте некоторый хороший редактор, который поддерживает регулярные выражения в поиске и замене, и превратите его в нечто вроде:
if(stripos($something, $somethingother) !== FALSE){
}
Ответ 2
Я знаю, этот вопрос не является актуальным, но я решил аналогичную проблему:)
Мое решение:
/**
* 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);
}
Примеры:
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
Ответ 3
посмотрите strstr функция
Ответ 4
Используйте функцию, эту строку поиска в другой строке, например: strstr
, strpos
, substr_count
.
Ответ 5
Но вам нужно будет передать строчную строчку, тогда она будет работать нормально.
Пример функции strstr:
$myString = "Hello, world!";
echo strstr( $myString, "wor" ); // Displays 'world!'
echo ( strstr( $myString, "xyz" ) ? "Yes" : "No" ); // Displays 'No'
Ответ 6
Используйте эту функцию, которая работает так же, как оператор SQL LIKE, но она будет возвращать логическое значение, и вы можете создать собственное условие с помощью еще одного оператора 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
}