Prodej respirátorů FFP2 + Chirurgických roušek - Skladem
Zobrazují se odpovědi 1 až 13 z 13

Zhoda v stringu

  1. Zdravím,

    snažím sa nájsť zhodu slova v stringu
    preg_match("/\b$village->fullname\b/" , $content)

    Text ťahám z DB je obalený <p></p>, vyhadzuje mi chybu
    preg_match(): Compilation failed: unmatched closing parenth

    a neviem pochopiť kde je chyba.

    dik za tipy.

  2. Co se právě děje na Webtrhu?
  3. preco pouzivas regularny vyraz a nie stripos?

  4. A proc tu filtraci delas az v php a nenechas si vypsat z db jen ty zaznamy,ktere skutecne chces?

  5. Citace Původně odeslal node Zobrazit příspěvek
    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 ----------

    Citace Původně odeslal Vít Michalek Zobrazit příspěvek
    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.

  6. A proc nemas tagy ulozene rovnou u clanku?

  7. Citace Původně odeslal Vít Michalek Zobrazit příspěvek
    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.

  8. preg_match("/\b\$village->fullname\b/" , $content)

    $ je "funkční" znak, proto escape

  9. Citace Původně odeslal takatom Zobrazit příspěvek
    preg_match("/\b\$village->fullname\b/" , $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.


  10. Citace Původně odeslal node Zobrazit příspěvek
    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?

  11. 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.

    PHP kód:
    <?php
    $keyword 
    preg_quote($village->fullname'/');
    preg_match("/\b$keyword\b/" $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í.

  12. 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á)

  13. Nemůžete dát preg_match s proměnnou bez mezipaměti

Spolupracujeme: Jooble.org, Aximum - profesionální překlady Hostujeme u Server powered by TELE3