PHP Поиск подстроки в ненормальной строке

126
24 октября 2019, 14:40

Нужно найти название игры в XML файлах от магазинов. Некоторые пишут название так "Metro Exodus", некоторые так: "Metro: Exodus", некоторые так: "Metro: Exodu's".

Надо что бы при поиске строки "metro exodus", находилось и то и другое не зависимо от наличия апострофов двоеточий и т.д.

strpos(); находит только в первом файле игру.

Подскажите как это сделать?

Answer 1

С игнорированием символов не получится (наверно?), только регулярка. Если конкретно эта игра, а не любая в принципе...

$string = "Metro Exodus"; // Строка, откуда нужно найти подстроку
$res = preg_match("/metro(:?) exodu('?)s/i", $string);
if($res) {
    echo 'Найдено';
} else {
    echo 'Нет соответствий';
}

Универсальный вариант:

$xml = "Metro: Exodu's";
$need = "metro exodus";
if(strcmp($xml, $need) == 0){
    echo "Всё совпало и так!";
} else {
    $xml = strtolower(preg_replace('/[,.:"!\']/', '', $xml));
    if(strcmp($xml, $need) == 0){
        echo "Всё совпало!";
    } else {
        echo "Что-то пошло не так";
    }
}
READ ALSO
readbean php как правильно сделать запрос

readbean php как правильно сделать запрос

Всем привет на данном этапе собираюсь с mysql мигрировать на orm readbean php вот застрял в начале собственно! Соединения с бд есть далее есть форма...

162
Foreign key is null php laravel

Foreign key is null php laravel

Пытаюсь сделать отношения "один ко многим"У меня есть таблицы users и orders

125
Как подмешать элементы в массив?

Как подмешать элементы в массив?

Есть два диапазона, например от 25 до 100 и от 100 до 200Минимум при этом равен 25, а максимум 200

103
APi получение данных через curl

APi получение данных через curl

Где ошибся и как получить данные? сейчас пишет страница недоступна

122