Med version 7 af TeamShare tager Lector næste skridt og bygger en platform for AI-agenter, der i højere grad kan følge medarbejderen gennem hele arbejdsprocessen.
Dit $q er jo næppe et regulært udtryk, så derfor vil str_replace være hurtigst. Men den er case-sensitiv. I PHP5 kan du bruge str_ireplace til ikke case sensitiv.
Skal du erstatte hele ord, fx "abe" som ikke må være del af et andet ord, "abekat", så skal vi over i regulære udtryk.
Erik > Ja, men så får han ikke fordel af back-references (det skriver han selvfølgelig heller ikke at han vil have ;))
Jeg foretrækker det dog, hvis det eksempelvis er i forbindelse med en søge-algoritme, hvos man ikke vil lade brugeren ændre kapitalærer i den oprindelige tekst, men bare vil highlighte resultater... (Det er du selvfølgelig helt med på, Erik, jeg ville bare være sikker på, at spørger også var)
jensgram >> din preg sætning virker jo fornemt. Og du har fuldstændigt ret i at det skal bruges i "forbindelse med en søge-algoritme, hvos man ikke vil lade brugeren ændre kapitalærer i den oprindelige tekst, men bare vil highlighte resultater"
Hvad er det smarte ved back-references? Det virker umidelbart lige så let at benytte $q
Hvad nu, som erikjacobsen er inde på, hvis ordet ikke må være del af et andet ord?
Den case-insensitive version af ereg_replace er eregi_replace. Som Erik skriver, hvis du vil undgå at highlighte mantis når du ville highlighte tis, bør du bruge et regulært udtryk. Jeg foretrækker PCRE, altså preg_* funktionerne :) Den ville vist se ud lidt a la: $q = preg_replace( "/\b$q\b/mi", '<span class="highlight">\\0</span>', $q );
Synes godt om
Slettet bruger
21. oktober 2004 - 12:21#7
Det er nok en god ide at sørge for at escape $q før den bruges. Og så skulle de to $q i coderdks kode vist være $s.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.