ganzen Satz im String

  • Ohne Kommentar :(

  • Das ist gut.Nur leider bringt mich das der Fehlersuche nicht weiter.

    Weil er Zeigt ein Text an was ca 100 Zeichen lang ist ,aber weit nach den gefundene Wort und markiert ist auch nix.

    Mit den Zahlen spielen bringt auch nix.

    Die Formatierung passiert doch um das $1 herum, probiere es halt mal, bevor Du sagst das passt nicht.

    Siehe #14 von m.scatello  

  • Warum behauptet ihr immer ich würde die Manual nicht lesen.

    Lesen schon ,aber nicht immer Sofort verstehen:cursing:


    Habe mir jetzt das mit similar_text() durchgelesen.Da es aber auch nicht läuft und ich es trotzdem gelesen habe ,bleibt nur eins übrig.Ich habe es noch nicht verstanden. :(


    Das mit substr(),stripos(),strlen() und ein Teil von den replace ist jetzt in meiner Birne drinne.


    Auch den kram mit den Datenbanken ,ist mitlerweile in meiner Birne drinne ( Dank Sailor und m.scatello die reichlich gedult hatten).

    Ist zwar noch nicht Perfekt,aber das letzte Script wahr zumindest so gut das ich kein Anschiss mehr bekommen habe.


    Also sagt nicht immer das ich nicht lernen will oder es nicht tue.

    Ich tue es doch und will es auch.Brauche vieleicht nur ein paar mehr Ar..tritte als wer anders.


    Bei Js wahr der Anfang auch schwer weil ich die Materie nicht kannte.Wenn ich da was nicht weiß geht man kurz lesen und fertig ,weil man das ganze drum herum ja kennt.

    Bei Php bin ich leider noch irgendwo am Anfang

  • Warum behauptet ihr immer ich würde die Manual nicht lesen.

    Weil du diesen Eindruck hinterlässt. Es ist auch keine dumme Idee, die "User Contributed Notes" bei den einzelnen Funktionen zu beachten, denn da sind meist sehr hilfreiche Beispiele und Informationen zu finden.


    Zitat

    das letzte Script wahr zumindest so gut das ich kein Anschiss mehr bekommen habe.

    Auch unsere Geduld hat mal ein Ende 8o

    Zitat

    Also sagt nicht immer das ich nicht lernen will oder es nicht tue.

    Das sagt ja keiner, aber die Art und Weise wie du lernen willst, funktioniert nicht so wirklich. Du stellst eine Frage, bekommst ein Antwort und reagierst darauf. Allerdings hast du in der Zwischenzeit hier und in anderen Foren zu völlig anderen Themen gepostet. Mit anderen Worten, du springst von einem Thema zum nächsten, anstatt dich mal an einem deiner Probleme festzubeißen. Und wenn ich das richtig sehe, hast du doch den ganzen Tag nichts anderes zu tun. Also, wenn ich am laufenden Bande das Thema wechseln würde, könnte ich auch nicht vernünftig lernen. Und sorry, oft hat man den Eindruck, du schreibst erst den Quellcode und fängst hinterher an zu denken.

  • Ich habe mich lediglich auf Deine Aussage aus #40 bezogen, dass angeblich das gefundene Suchwort nicht markiert wird.

    Da Du mich in dem Beitrag ansprichst, gehe ich davon aus, dass Du Dich auf meinen Vorschlag in #36 beziehst.


    Dort aber wird definitiv das gefundene Wort hervorgehoben, wenn Du es so testest, wie ich es gepostet habe.


    Heißt für mich: Du hast es nicht probiert, sonst wärst Du nicht zu der Aussage gekommen, es würde nichts markiert werden.

    Die 100 Zeichen davor und dahinter habe ich nur eingebaut, weil Du in #6 gesagt hast:

    Zitat

    Deswegen habe ich mir gedacht ich lese die nächsten 200 Zeichen ein und fertig.Bzw wollte ich davor ein paar Zeichen und danach ein paar Zeichen einlesen.

  • Vieleicht sollte ich meine fragen auch anders stellen,dann kommen vieleicht auch wenniger miss verständnisse.

    Dort aber wird definitiv das gefundene Wort hervorgehoben, wenn Du es so testest, wie ich es gepostet habe.

    Davon gehe ich aus das dein Code funktioniert,bei mir klappte es da aber noch nicht.

    Aber mitlerweile gehts.

    Die 100 Zeichen davor und dahinter habe ich nur eingebaut, weil Du in #6 gesagt hast:

    Das stimmt das hätte ich wohl genau so gemacht.Ist ja auch richtig so sollte das endergebniss ja auch sein

    Auch unsere Geduld hat mal ein Ende 8o

    Mit dem letzten Script meinte ich es anders,aber das kannst du ja nicht wissen.Ich habe ein den ich bei Javascript helfe,er aber dafür SQL kann.

    Da ich am Anfang immer mysqli und pdo ,und mal mit und ohne statements alles gemischt habe und auch andauernd sql-Injection vergessen habe,hat er mir auch immer arschtritt gegeben.

    Zumindest wahr da jetzt das letzte Script sogut das es in der Hinsicht nix mehr zu meckern gab.Da sind zwar noch andere kleinigkeiten nicht perfekt,aber ich arbeite dran.

    Wenn ich glaube das es Perfekt ist werde ich mal ein Script posten und mal sehen was ihr dann sagt gegenüber von letzten Monat.


    So zurück zum Thema.

    similar_text() ist vieleicht nee gute Function um Benutzernamen und Passwort auf gleichheit zu kontrolieren,aber für mein vorhaben wohl er falsch.

    Wenn ich in der Suche "HALLO" eingebe soll er zb "HALLÖCHEN" ,"BALLO" ,"HARIBO" und so weiter finden.


    Habt ihr nee idee welche function da helfen kann

  • Ich glaube nicht, dass das ohne explizites Mapping über eine Whitelist o.ä. möglich ist.

    similar_text(), levenshtein() u.a. benötigen zwei Strings, die sie vergleichen können. Um mit dem Suchwort vergleichen zu können, müsstest Du den Ursprungstext auf Wörter aufbrechen und alle Wörter mit dem Suchwort vergleichen. Anhand der Ähnlichkeit kannst Du dann bestimmen, welche Wörter gefunden werden sollten.


    Allerdings empfinde ich es auch als eher fragwürdig, warum man das so haben möchte.

    Welche Gründe hast Du dafür?

  • Wenn ich Hallo eingebe, soll er auch Haribo finden? Was ist das für eine Logik?

    ja gut nicht Haribo ,das ist dummes beispiel,aber so das man die ähnlichkeits Wörter findet.

    Allerdings empfinde ich es auch als eher fragwürdig, warum man das so haben möchte.

    Welche Gründe hast Du dafür?

    Eigentlich ist es dafür gedacht Wörter zu finden die Falsch geschrieben wurden .zb

    HALLO == halo ,halllo ,haloh oder so in der art.

    Googel kann das ja auch,aber die haben wohl ganz andere möglichkeiten.


    Meine frage ist dann eigentlich nur ob ich auf mein Server mit ca 1000 Documente ,irgendwie so eine Suche verwirklichen kann,ohne großen aufwand.


    Eine "synonyme" Suche bin ich gerade dran,aber das ist ja leider nicht das gleiche.


    Wenn ich similar_text() richtig verstehe müste ich über jedes Document eine Schleife jagen die jedes Wort vergleicht und zb bei 70% gleichheit als Treffer makieren ??


    Ist natürlich etwas viel aufwand

  • Genau, levenshtein() funktioniert genau so, ist allerdings nicht so "teuer", wie similar_text(), von daher also etwas performanter.

    Wenn Du aber schon 1000 Dokumente erwähnst, würde ich das grundsätzlich nicht für eine gute Idee halten, die so zu durchsuchen.


    Muss das live passieren?

    Für welchen Anwendungsfall benötigst Du das denn genau. Evtl. gibt es ganz andere Möglichkeiten.

  • ich möchte eigentlich eine Durchsuche der Seite anbieten wie esa jede zweite Seite hat. Ist ja jetzt nicht mehr das problem das läuft ja alles.


    Aber die Leute die mich kennen wissen auch das da einige Fehler drinn sein können von der Rechtschreibung her.

    Diese suche soll ja eigentlich auch nur für mich sein ,weil jedes Javascript oder schnippet die Ich im Forum angeboten habe für hilfe ist gespeicher weil man es mal brauchen kann ,und auch schon öffters brauche.


    Ab und zu durchsuche ich meinen eigenen Server weil ich nicht mehr weiß wie genau ich es geschrieben habe.

    Deswegen wäre so nee Suche schon genial.

    Der zweite Grund ist natürlich auch weil ich sowas lernen will. Wahrscheinlich setzte ich meine Ziele am Anfang zu hoch,als Anfänger ,aber so habe ich nach und nach auch meine Js,Css und html wissen angesammelt.

    Wahrscheinlich hört sich das für außenstehenden blöd an gleich mit schweren Funktionen anzufangen.

    Doch muß ich sagen das ich dadurch bei Js das meißte gelernt habe.

    Ich habe mie sachen rausgesucht die als Schwer eingeschätzt wurden und habe mich dann durch gegoogelt und gelesen bis ich es konnte.


    Da ich bei PHP noch an Anfang bin muß ich natürlich noch an mehreren Sachen rum googeln bis alles ein sinn ergibt in meiner Birne.



    Fals du mich nicht ganz verstehst ist auch gut weil meine erklärungen sind auch immer etwas doof

  • Also wenn es um Rechtschreibfehler o.ä. geht, kommst Du sicher um eine Vergleichsauswertung nicht rum.

    Ob das mit similar_text() oder levenshtein() noch in einer brauchbaren Performance liegt, kann ich nicht beurteilen. Das müsstest Du mal ausprobieren.


    Alternativ kann der Prozess selbst bspw. in C/C++ ausgelagert werden, aber das erfordert etwas mehr Kenntnisse, als für die reine PHP-Variante.

  • Aber die Leute die mich kennen wissen auch das da einige Fehler drinn sein können von der Rechtschreibung her.

    Dazu habe ich dir schon einmal etwas gesagt. Nutze eine Textverarbeitung und lasse eine Rechtschreibprüfung über deine Texte laufen. Damit eliminierst du schon 90% deiner Fehler.

    Was du aber machst, ist an den Symptomen stricken, anstatt die Ursache zu beheben.

  • Ich hatte gerade mal etwas Lust und hab ne kurze Hilfe dazu geschrieben:

    Beispiel-Anwendung:

    PHP
    1. <?php
    2. $o = new SimilarWords( __DIR__ . '/view/de/pages/' );
    3. $aMatches = $o->Process( 'Gratenarbeit' )->Get();

    In $aMatches stehen dann nach Dateipfaden gruppiert die gefundenen Ähnlichkeiten.

    Je nachdem, wie die SimilarDistance in der Klasse definiert wird, wird mehr oder weniger gefunden.

  • Das sieht ja Interesant aus ,aber ehrlich gesagt habe ich keine ahnung wie ich das zum laufen bekomme. Bis jetzt komme ich Nur eine Fehlermeldung die 5 Zeilen lang ist .So eine Fehlermeldung hatte ich auch noch nie.

    Muß erstmal durchblicken was der Code da macht und wie ,dann weiß ich vieleicht auch wie man den benutzt.

    also IRTFM

  • ich hatte irgendwo probleme mit den Verzeichnussen. Wollte erst ein anderes Verzeichnis angeben und dann kam der riesen Fehler. Habe das Script dann mit in den Verzeichnis getan und als Verzeichniss nur "/" angegeben. Jetzt läuft es ,und er findet auch tasächlich Worte die ähnlich sind.

    Bekomme aber noch diesen Fehler

    Code
    1. Warning: levenshtein() [function.levenshtein]: Argument string(s) too long in /users/sebastian1012/www/wort_suche.php on line 33

    Aber wenn ich die Manual richtig verstanden habe werden da wohl nur Strings die nicht länger sind als 255 Zeichen unterstützt. Ist das so richtig ?

    Ich habe mir das Ergebniss als var_dump anzeigen lassen ,was natülich auch geht.Da ich das aber etwas übersichtlicher haben wollte habe ich versucht das var_dump als Tabelle auszugeben ,also die arrays auseinander zu nehmen.

    Das habe ich schon mal gemacht ,warum klappt das wieder nicht .STAMPF AUF BODEN X(und flenne;(

  • Ja, das stimmt, aber welches Wort hat denn mehr wie 255 Zeichen?

    Ich hatte strip_tags() noch verwendet, um bspw. <link> oder <script>-Tags aus dem Header zu entfernen.

    Die Parameter können tlw. länger sein, aber die willst Du ja auch nicht finden.

  • Die 255 Zeichen findet er zb bei dataimage da wo die ewig lange Zeichenfolge kommt ,mir fällt der richtige Name gerade nicht ein und er findet das bei css Datein wo keine Leerzeichen drinne sind ,zb bei der bootstramp.css.


    Aber das ist ja nicht schlimm das kann man ja bestimmt mit catch oder einer if abfrage abfangen.


    Mein Proplem ist gerade das ich keinen vernünftigen Ansatz finde das auf der DB anzuwenden.

    Die Tabellenspalte "INHALT" soll durchsucht werden ,zb nach "basti" . Finden soll er auch rasti ,und basto..

    Bastian oder sebastian findet man ja mit LIKE.


    Gibt es für die DB da eine abfrage die sowas findet ??

    bei mein Gogglen bin ich auf das gestoßen

    https://www.bitcage.net/themen…aehnliche-begriffe-finden


    Was natürlich nicht geht ,oder ich mal wieder nicht verstanden habe

  • Und warum willst Du css Dateien nach Wörtern durchsuchen???

    Wenn Du nix weiter angibst, liest mein Script nur .html Dateien.


    Levenshtein ist grundsätzlich eine "teure" Funktion, in MySQL noch mehr, wie in PHP.

    Dir bleibt aber auch Datenbank seitig das Problem, dass Du Worte mit Worten vergleichen musst und nicht Worte mit vollem Text.