PHP - търсене на кирилица

StefanIvanov

New Member
Здравейте, опитвам се да търся определена дума на кирилица в стринг, но явно с preg_match не става или поне не знам как да го направя.

Примера ми е следния:

$data = 'животни/бозайници/кучета';

if (preg_match(/бозайници/, $data)){
echo 'бозайници';
}

Когато е на латиница работи без проблем, но на кирилица не го намира. Знаете ли как да го направя така, че да работи. Ако не с preg_match може и с друга функция, няма значение - просто да разпознава, че думата присъства в текста.
 
От: PHP - търсене на кирилица

Кода си работи и на кирилица, но сложи на кавички на търсената дума:
Код:
$data = 'животни/бозайници/кучета';

if (preg_match('/бозайници/', $data)){
echo 'бозайници';
}
 
От: PHP - търсене на кирилица

Да, така наистина работи, но имате ли представа защо не иска да работи, когато взимам url адрес на кирилица, че искам да направя една проверка и не може, а на латиница винаги си работи по този начин.

Например, ако url адреса в даден сайт е: http://site.com/животни-бозайници-кучета и искам да проверя дали има "бозайници" в адреса, правя следното:

if (preg_match('/бозайници/', $_SERVER['REQUEST_URI'])){
echo 'да';
}

Не се получава нищо, а ако адреса е написан на латиница, тогава нещата работят. Пробвах даже да проверявам по странните символи, които се получават при url адресите на кирилица, но пак не става. Досега съм го правил много пъти това със сайтове на латиница и никога не съм имал проблеми, но сега има един с адреси на кирилица и се чувя как да направя проверката.
 
От: PHP - търсене на кирилица

Да, така наистина работи, но имате ли представа защо не иска да работи, когато взимам url адрес на кирилица, че искам да направя една проверка и не може, а на латиница винаги си работи по този начин.


Например, ако url адреса в даден сайт е: http://site.com/животни-бозайници-кучета и искам да проверя дали има "бозайници" в адреса, правя следното:


if (preg_match('/бозайници/', $_SERVER['REQUEST_URI'])){
echo 'да';
}


Не се получава нищо, а ако адреса е написан на латиница, тогава нещата работят. Пробвах даже да проверявам по странните символи, които се получават при url адресите на кирилица, но пак не става. Досега съм го правил много пъти това със сайтове на латиница и никога не съм имал проблеми, но сега има един с адреси на кирилица и се чувя как да направя проверката.


PHP:
echo $_SERVER['REQUEST_URI'];
echo urldecode($_SERVER['REQUEST_URI']);

и сам ще се сетиш ...
 
От: PHP - търсене на кирилица

Благодаря, не знаех че има такава функция за декодиране на URL, ще я тествам след малко. Досега само с адреси на латиница съм се занимавал и за пръв път правя подобно нещо.
 

Горе