Mb_substr a utf-8 + rtrim a utf-8 = chyba ve vyhlédavači – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Mb_substr a utf-8 + rtrim a utf-8 = chyba ve vyhlédavači – PHP – Fórum – Programujte.comMb_substr a utf-8 + rtrim a utf-8 = chyba ve vyhlédavači – PHP – Fórum – Programujte.com

 

23. 2. 2014   #1
-
0
-

Dobrý večer, pracuji na vyhledávači, který dokáže najít základní slovo i když zadám množné číslo, jiný pád, nebo přídavné jméno. ale skončil jsem u předposledního kroku chci porovnat například poslední tři písmena ze slova počítačový a vrátit počítač.Ale nedaří se mi to pro české znaky na konci. Prosím o pomoc.

Kód:

$_GET['s_word'] je například počítačový 

$s_word = html_entity_decode($_GET['s_word'], ENT_COMPAT, 'UTF-8'); <- je počítačový

$l_word = mb_substr($s_word,-3,mb_strlen($s_word),"utf-8"); <- je ový
    if($l_word == "ovi" or $l_word == "ovy" or $_l_word == "ový" or $l_word = "kou" ){ <- porovnání pro utf-8 selže
        $s_word = rtrim($s_word,$l_word); <- tady ta funkce se nevykoná
    }

sql vypíše , že hledá slovo počítačový, pokud bych změnil na počítačovy pak sql vypíše počítač. 

Nahlásit jako SPAM
IP: 78.108.157.–
23. 2. 2014   #2
-
0
-

#1 ThcSuperman
Chyba $_l_word má být $l_word.

Nahlásit jako SPAM
IP: 78.108.157.–
Ericsko+3
Stálý člen
23. 2. 2014   #3
-
0
-

#1 ThcSuperman
Hm.. Ak budes zistovat, ci je slovo pridavnym menom tak, ze porovnas priponu, co spravis napr. vtedy, ak slovo bude "nový"? Bude slovny zaklad "n"? ;)

Asi si sa dal na nelahku cestu, ale na uvod by som asi odstranil diakritiku a hladal bez nej. Tym sa vyhnes tymto problemom. No a potom by som skusal asi radsej regularne vyrazy namiesto tohoto "substr" cirkusu.

Pre rozne typy slov budes musiet testovat rozne typy pripon, a samozrejme osetrit vsetky vynimky (vid "novy").

Nahlásit jako SPAM
IP: 88.212.34.–
peter
~ Anonymní uživatel
4014 příspěvků
24. 2. 2014   #4
-
0
-

Ja bych pouzil in_array misto sady or or or.
To porovnani s diakritikou jsem nezkousel. Jake mas nastavene vychozi kodovani? Kdyz das echo $_GET['s_word']  a echo $l_word, tak se to vypise spravne?

Nahlásit jako SPAM
IP: 2001:718:2601:400:0:5efe:...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 4 hosté

Podobná vlákna

Fwrite vs. UTF-8 — založil yaqwsx

UTF-8 kódování — založil sigf07

PHP a UTF-8 — založil Dominik

Captcha a UTF-8 — založil liborb

čtení vstupu v UTF-8 — založil Petr Zakopal

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý