Подскажите, можно ли как-то осуществить умный поиск в строке?
Есть фраза
$text = 'Hello, world!';
Если я буду искать совпадение по слову "Hello" - мне вернет true. А как сделать так, что если я ищу по фразе хеллоу - мне тоже вернуло true?
Умный, простой, понятный поиск :)
$q = 'Хеллоу world';
- ваш ключевое слово
$text = 'Hello, world!';
- ваш текст
Hello, world! - ваш результат
<?php
function translate($str) {
$tr = array(
"А"=>"A","Б"=>"B","В"=>"V","Г"=>"G",
"Д"=>"D","Е"=>"E","Ж"=>"J","З"=>"Z","И"=>"I",
"Й"=>"Y","К"=>"K","Л"=>"L","М"=>"M","Н"=>"N",
"О"=>"O","П"=>"P","Р"=>"R","С"=>"S","Т"=>"T",
"У"=>"U","Ф"=>"F","Х"=>"H","Ц"=>"TS","Ч"=>"CH",
"Ш"=>"SH","Щ"=>"SCH","Ъ"=>"","Ы"=>"YI","Ь"=>"",
"Э"=>"E","Ю"=>"YU","Я"=>"YA","а"=>"a","б"=>"b",
"в"=>"v","г"=>"g","д"=>"d","е"=>"e","ж"=>"j",
"з"=>"z","и"=>"i","й"=>"y","к"=>"k","л"=>"l",
"м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",
"с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"h",
"ц"=>"ts","ч"=>"ch","ш"=>"sh","щ"=>"sch","ъ"=>"y",
"ы"=>"yi","ь"=>"'","э"=>"e","ю"=>"yu","я"=>"ya"
);
return strtr($str,$tr);
}
function keywords($str) {
$arrays = array(
"Hello"=>"привет,приветик,хеллоу,здрасти,здравствуйте",
"world"=>"земля,шар",
);
foreach ($arrays as $key => $value) {
if(stripos($value, mb_strtolower($str)) !== false) {
return $key;
}
}
}
$q = 'Хеллоу world';
$text = 'Hello, world!';
$words = explode(' ',trim($q));
$result = '';
foreach ($words as $key => $value) {
if(stripos($text, keywords($value)) !== false) {
$text = str_replace(keywords($value), '<b>'.keywords($value).'</b>', $text);
}
if(stripos($text, translate($value)) !== false) {
$text = str_replace($value, '<b>'.$value.'</b>', $text);
}
}
if ($text) {
echo $text;
} else {
echo 'Не найдено';
}
?>
Создайте базу слов при которых будет выводится true, и проверяйте на наличие текста в этой базе.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
передаю в функцию параметр и хочу использовать его в регулярном выражении, но этот код не работает и не выдает ошибокEсли вместо ':code%' пишу...