Zadejte hledaný výraz...

Zhoda v stringu

Gabonator
verified
rating uzivatele
(1 hodnocení)
4. 1. 2020 09:46:16
Zdravím,
snažím sa nájsť zhodu slova v stringu
preg_match("/b$village->fullnameb/" , $content)
Text ťahám z DB je obalený

, vyhadzuje mi chybu
preg_match(): Compilation failed: unmatched closing parenth
a neviem pochopiť kde je chyba.
dik za tipy.
4. 1. 2020 09:46:16
https://webtrh.cz/diskuse/zhoda-v-stringu/#reply1431349
node
verified
rating uzivatele
(5 hodnocení)
4. 1. 2020 10:01:09
preco pouzivas regularny vyraz a nie stripos?
4. 1. 2020 10:01:09
https://webtrh.cz/diskuse/zhoda-v-stringu/#reply1431348
A proc tu filtraci delas az v php a nenechas si vypsat z db jen ty zaznamy,ktere skutecne chces?
4. 1. 2020 10:01:23
https://webtrh.cz/diskuse/zhoda-v-stringu/#reply1431347
Gabonator
verified
rating uzivatele
(1 hodnocení)
4. 1. 2020 10:24:16
Napsal node;1562199
preco pouzivas regularny vyraz a nie stripos?
Ako mám tomu rozumieť, popíš viac. dik
---------- Příspěvek doplněn 04.01.2020 v 10:24 ----------
Napsal Vít Michalek;1562200
A proc tu filtraci delas az v php a nenechas si vypsat z db jen ty zaznamy,ktere skutecne chces?
Lebo na základe zhody prihladzujem článku tágy.
4. 1. 2020 10:24:16
https://webtrh.cz/diskuse/zhoda-v-stringu/#reply1431346
A proc nemas tagy ulozene rovnou u clanku?
4. 1. 2020 10:35:36
https://webtrh.cz/diskuse/zhoda-v-stringu/#reply1431345
Gabonator
verified
rating uzivatele
(1 hodnocení)
4. 1. 2020 10:38:25
Napsal Vít Michalek;1562211
A proc nemas tagy ulozene rovnou u clanku?
Asi som sa vyjadril nie presne. Tagy nazývam labels, o čom daný článok je (kľúčové slova).
A to sa má robiť cez vyhľadávanie zhody.
4. 1. 2020 10:38:25
https://webtrh.cz/diskuse/zhoda-v-stringu/#reply1431344
takatom
verified
rating uzivatele
(2 hodnocení)
4. 1. 2020 10:41:14
preg_match("/b$village->fullnameb/" , $content)
$ je "funkční" znak, proto escape
4. 1. 2020 10:41:14
https://webtrh.cz/diskuse/zhoda-v-stringu/#reply1431343
Gabonator
verified
rating uzivatele
(1 hodnocení)
4. 1. 2020 10:44:13
Napsal takatom;1562213
preg_match("/b$village->fullnameb/" , $content)
$ je "funkční" znak, proto escape
Pri niektorých článkov mi to beží bez problémov.
Chyba sa neprejavuje generálne. a neviem na to prísť prečo.
4. 1. 2020 10:44:13
https://webtrh.cz/diskuse/zhoda-v-stringu/#reply1431342
Pavel Mareš
verified
rating uzivatele
(19 hodnocení)
4. 1. 2020 11:07:32
php - How do I check if a string contains a specific word? - Stack Overflow
4. 1. 2020 11:07:32
https://webtrh.cz/diskuse/zhoda-v-stringu/#reply1431341
Gabonator
verified
rating uzivatele
(1 hodnocení)
4. 1. 2020 11:07:35
Napsal node;1562199
preco pouzivas regularny vyraz a nie stripos?
Už viem prečo nepoužívam stripos. Lebo ti to nájde zhodu aj v časti slova.
Potrebujem zhodu len celého slova.
Teoreticky by som mohol použiť aj stripos ale bo by som musel celú DB
preindexovať od najdlhšieho slova po najkratšie hľadanie. aby začalo hľadať najdlhším výrazom.
Rozmýšľam ako by som zrealizoval reindexáciu DB?
4. 1. 2020 11:07:35
https://webtrh.cz/diskuse/zhoda-v-stringu/#reply1431340
TomasX
verified
rating uzivatele
(4 hodnocení)
4. 1. 2020 11:44:16
nemůžeš to preg_match dávat neescapovanou proměnou, může obsahovat řídící znaky a poté ti kód spadne, což se ti asi děje.
$keyword = preg_quote($village->fullname, '/');
preg_match("/b$keywordb/" , $content);
Samozřejmě tohle není ideální postup, regulární dotazy jsou cpu náročné a takhle je musíš počítat při každém načtení stránky, lepší je si tagy/labely připravit dopředu v db nebo si aspoň dopředu vytáhnout klíčová slova, případně je upraví do základního tvaru a poté si k nim můžeš dynamicky přiřazovat tagy/labely na webu, stejně tak se zpracovává text pro fulltextové vyhledávání.
4. 1. 2020 11:44:16
https://webtrh.cz/diskuse/zhoda-v-stringu/#reply1431339
Gabonator
verified
rating uzivatele
(1 hodnocení)
4. 1. 2020 13:00:21
Ano, TomášX
tak nejako k tomu smerujem.
---------- Příspěvek doplněn 04.01.2020 v 13:13 ----------
Nakoniec som to vyriešil tak,
že vytvoril som novú DB preindexovanú od najdlhšieho výrazu po najkratší.
a prešiel s preg_match na strpos ().
Tým som získal vyššiu kvalitu vyhľadania ako doposiaľ.
dik za pomoc.
Upresnenie čo robia funkcie.
strripos () - Nájde polohu posledného výskytu reťazca v inom reťazci (nerozlišuje veľkosť písmen)
strpos () - Nájde polohu prvého výskytu reťazca v inom reťazci (citlivosť na veľké a malé písmená)
strrpos () - Nájde polohu posledného výskytu reťazca v inom reťazci (citlivosť na veľké a malé písmená)
4. 1. 2020 13:00:21
https://webtrh.cz/diskuse/zhoda-v-stringu/#reply1431338
DaisyPeyton
verified
rating uzivatele
11. 1. 2020 12:37:04
Nemůžete dát preg_match s proměnnou bez mezipaměti
11. 1. 2020 12:37:04
https://webtrh.cz/diskuse/zhoda-v-stringu/#reply1431337
Pro odpověď se přihlašte.
Přihlásit