PHP Like, похожая на MySQL Like, для оператора if? - PullRequest
11 голосов
/ 06 февраля 2011

Я хочу оператор if, который использует ту же самую вещь, как mysql something LIKE '%something%'

Я хочу построить оператор if в php.

if ($something is like %$somethingother%)

Возможно ли это?

Причина, по которой я задаю этот вопрос, заключается в том, что я не хочу менять команду MySQL, это длинная страница со множеством вещей, я не хочу создавать для этого другую функцию.

Дайте мне знать, если это возможно, если возможно, то как это сделать.

Ответы [ 6 ]

26 голосов
/ 06 февраля 2011

если ($ что-то похоже на% $ что-то другое%)

Возможно ли это?

нет.

Не знаюЕсли вы не хотите изменять команду MySQL, это длинная страница со множеством вещей

Используйте хороший редактор, который поддерживает регулярные выражения в функции поиска и замены, и установите для него что-то вроде:

if(stripos($something, $somethingother) !== FALSE){

}
16 голосов
/ 13 октября 2013

Я знаю, этот вопрос не актуален, но я решил похожую проблему:)

Мое решение:

/**
 * 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
4 голосов
/ 06 февраля 2011

смотри strstr функция

2 голосов
/ 06 февраля 2011

Используйте функцию, которая ищет строку в другой строке, например: strstr, strpos, substr_count.

0 голосов
/ 11 января 2019

Используйте эту функцию, которая работает так же, как оператор 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
}
0 голосов
/ 27 марта 2014

Но вам нужно будет указать строчную строку, тогда она будет работать нормально. Пример функции strstr:

$myString = "Hello, world!";
echo strstr( $myString, "wor" );                    // Displays 'world!'
echo ( strstr( $myString, "xyz" ) ? "Yes" : "No" ); // Displays 'No'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...