Text in einzelne Wörter splitten klappt nicht korrekt – SELFHTML-Forum Forum als Ergänzung zum SELFHTML-Wiki und zur Dokumentation SELFHTML https://forum.selfhtml.org/self Text in einzelne Wörter splitten klappt nicht korrekt Wed, 20 Feb 08 14:35:32 Z https://forum.selfhtml.org/self/2008/feb/20/text-in-einzelne-woerter-splitten-klappt-nicht-korrekt/1215575#m1215575 https://forum.selfhtml.org/self/2008/feb/20/text-in-einzelne-woerter-splitten-klappt-nicht-korrekt/1215575#m1215575 <p>Hi,</p> <p>ich lese eine Textdatei ein und speichere den gesamten Inhalt Wort für Wort in einem Array. Als Trennungszeichen ist alles erlaubt außer <code class="language-php"><span class="token punctuation">[</span><span class="token operator">^</span>a<span class="token operator">-</span>zA<span class="token operator">-</span>z<span class="token punctuation">;</span><span class="token operator">&</span><span class="token punctuation">]</span></code> (; und & deswegen, damit Worte mit Umlauten nicht in der Mitte getrennt werden).</p> <p>(Die Textdatei ist so aufgebaut:</p> <p>pfadangabeabc.php|titel| | |text blabla<br> pfadangabexyz.php|titel| | |text blablubb</p> <p>Benötigt wird nur der "text"-Teil.)</p> <p>Die Wörter werden dann "gefiltert" und in ein neues Array gespeichert. Lese ich dieses Array aber dann aus, finde ich doch plötzlich Wörter, die vor dem Umlaut abgeschnitten sind. Ich weiß aber nicht, was da der Fehler ist. Wenn ich vor dem "Filtern" das Array ausgeben lassen scheint alles in Ordnung, aber danach nicht mehr.</p> <p>Das Script sieht so aus:</p> <pre><code class="block language-php"> <span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token variable">$datei</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"data.txt"</span><span class="token punctuation">;</span> <span class="token comment"># Datei öffnen und einlesen </span> <span class="token variable">$zeilen</span> <span class="token operator">=</span> <span class="token function">file</span><span class="token punctuation">(</span><span class="token variable">$datei</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$anz_zeilen</span> <span class="token operator">=</span> <span class="token function">sizeof</span><span class="token punctuation">(</span><span class="token variable">$zeilen</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">for</span> <span class="token punctuation">(</span><span class="token variable">$i</span><span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">;</span> <span class="token variable">$i</span><span class="token operator"><</span><span class="token variable">$anz_zeilen</span><span class="token punctuation">;</span> <span class="token variable">$i</span><span class="token operator">++</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">list</span> <span class="token punctuation">(</span><span class="token variable">$egala</span><span class="token punctuation">,</span> <span class="token variable">$egalb</span><span class="token punctuation">,</span> <span class="token variable">$egalc</span><span class="token punctuation">,</span> <span class="token variable">$egald</span><span class="token punctuation">,</span> <span class="token variable">$content</span><span class="token punctuation">)</span> <span class="token operator">=</span> <span class="token function">split</span><span class="token punctuation">(</span><span class="token string double-quoted-string">"\\|"</span><span class="token punctuation">,</span> <span class="token function">chop</span><span class="token punctuation">(</span><span class="token variable">$zeilen</span><span class="token punctuation">[</span><span class="token variable">$i</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$inhalt</span> <span class="token operator">=</span> <span class="token variable">$content</span><span class="token punctuation">;</span> <span class="token variable">$liste</span> <span class="token operator">=</span> <span class="token function">spliti</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'[^a-z;&]'</span><span class="token punctuation">,</span> <span class="token variable">$inhalt</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">foreach</span> <span class="token punctuation">(</span><span class="token variable">$liste</span> <span class="token keyword">as</span> <span class="token variable">$word</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token variable">$prozent</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token number">1</span><span class="token operator">-</span><span class="token function">levenshtein</span><span class="token punctuation">(</span><span class="token function">strtolower</span><span class="token punctuation">(</span><span class="token variable">$input</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token function">strtolower</span><span class="token punctuation">(</span><span class="token variable">$word</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token operator">/</span><span class="token function">max</span><span class="token punctuation">(</span><span class="token function">strlen</span><span class="token punctuation">(</span><span class="token variable">$input</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token function">strlen</span><span class="token punctuation">(</span><span class="token variable">$word</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">if</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token function">levenshtein</span><span class="token punctuation">(</span><span class="token function">strtolower</span><span class="token punctuation">(</span><span class="token variable">$input</span><span class="token punctuation">)</span><span class="token punctuation">,</span><span class="token function">strtolower</span><span class="token punctuation">(</span><span class="token variable">$word</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token operator"><=</span> <span class="token variable">$focus</span><span class="token punctuation">)</span> <span class="token operator">&&</span> <span class="token variable">$prozent</span> <span class="token operator">>=</span> <span class="token number">0.5</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">if</span><span class="token punctuation">(</span><span class="token operator">!</span><span class="token function">array_key_exists</span><span class="token punctuation">(</span><span class="token variable">$word</span><span class="token punctuation">,</span><span class="token variable">$words</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token variable">$words</span><span class="token punctuation">[</span><span class="token variable">$word</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token variable">$prozent</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> <span class="token keyword">foreach</span><span class="token punctuation">(</span><span class="token variable">$liste</span> <span class="token keyword">as</span> <span class="token variable">$wort</span><span class="token punctuation">)</span> <span class="token comment">#Array vor Filter, i.O. </span> <span class="token punctuation">{</span> <span class="token keyword">echo</span> <span class="token string double-quoted-string">"<span class="token interpolation"><span class="token variable">$wort</span></span><br>"</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token keyword">foreach</span><span class="token punctuation">(</span><span class="token variable">$words</span> <span class="token keyword">as</span> <span class="token variable">$word</span> <span class="token operator">=></span> <span class="token variable">$prozent</span><span class="token punctuation">)</span> <span class="token comment">#Array nach Filter, nicht i.O. </span> <span class="token punctuation">{</span> <span class="token keyword">echo</span> <span class="token string double-quoted-string">"<span class="token interpolation"><span class="token variable">$word</span></span><br>"</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token delimiter important">?></span></span> </code></pre> <p>Kann mir da jemand helfen?</p> Text in einzelne Wörter splitten klappt nicht korrekt Wed, 20 Feb 08 15:18:20 Z https://forum.selfhtml.org/self/2008/feb/20/text-in-einzelne-woerter-splitten-klappt-nicht-korrekt/1215591#m1215591 https://forum.selfhtml.org/self/2008/feb/20/text-in-einzelne-woerter-splitten-klappt-nicht-korrekt/1215591#m1215591 <p>Hallo,<br> ich kann dir ledier nicht helfen aber ich würde gerne wissen was folgende Zeilen machen?</p> <p><<$prozent = (1-levenshtein(strtolower($input), strtolower($word))/max(strlen($input), strlen($word)));<br>     if((levenshtein(strtolower($input),strtolower($word)) <= $focus) && $prozent >= 0.5)>></p> <p>ich hatte das bisher (levenshtein) so noch nie gesehen.</p> <p>vielen Dank<br> Gruss<br> hawk</p> Text in einzelne Wörter splitten klappt nicht korrekt Wed, 20 Feb 08 16:06:01 Z https://forum.selfhtml.org/self/2008/feb/20/text-in-einzelne-woerter-splitten-klappt-nicht-korrekt/1215576#m1215576 https://forum.selfhtml.org/self/2008/feb/20/text-in-einzelne-woerter-splitten-klappt-nicht-korrekt/1215576#m1215576 <p>echo $begrüßung;</p> <blockquote> <p>ich lese eine Textdatei ein und speichere den gesamten Inhalt Wort für Wort in einem Array. Als Trennungszeichen ist alles erlaubt außer [^a-zA-z;&] (; und & deswegen, damit Worte mit Umlauten nicht in der Mitte getrennt werden).</p> </blockquote> <p>Nebensächliches: Wieso stehen da eigentlich HTML-Schreibweisen in einem Nicht-HTML-Kontext?</p> <blockquote> <p>[...] finde ich doch plötzlich Wörter, die vor dem Umlaut abgeschnitten sind. Ich weiß aber nicht, was da der Fehler ist.</p> </blockquote> <p>Den Fehler kann ich auch nicht nachvollziehen:</p> <p>list (, , , , $content) = split("\|", 'pfadangabexyz.php|titel| | |bl&ouml;dsinn und l&ouml;tzinn');<br>   var_dump($content);<br>   var_dump(spliti('[^a-z;&]', 'bl&ouml;dsinn und l&ouml;tzinn'));</p> <p>ergibt:</p> <p>string(30) "bl&ouml;dsinn und l&ouml;tzinn"<br>   array(3) {<br>     [0]=> string(13) "bl&ouml;dsinn"<br>     [1]=> string(3) "und"<br>     [2]=> string(12) "l&ouml;tzinn"<br>   }</p> <blockquote> <p>Wenn ich vor dem "Filtern" das Array ausgeben lassen scheint alles in Ordnung, aber danach nicht mehr.</p> </blockquote> <p>var_dump() gibt dir auch die Zeichenanzahl im String aus. Stimmt die mir den von dir gezählten Zeichen überein, oder versteckt sich da vielleicht noch irgendein Sonderzeichen?</p> <blockquote> <p>list ($egala, $egalb, $egalc, $egald, $content) = split("\|", chop($zeilen[$i]));</p> </blockquote> <p>Nebensächliches: Nicht benötigte Werte benötigen keine Dummy-Variable. Sie können einfach ausgelassen werden, nur ein Komma muss stehenbleiben.</p> <p>echo "$verabschiedung $name";</p> Text in einzelne Wörter splitten klappt nicht korrekt Wed, 20 Feb 08 17:48:00 Z https://forum.selfhtml.org/self/2008/feb/20/text-in-einzelne-woerter-splitten-klappt-nicht-korrekt/1215577#m1215577 https://forum.selfhtml.org/self/2008/feb/20/text-in-einzelne-woerter-splitten-klappt-nicht-korrekt/1215577#m1215577 <p>Hi,</p> <blockquote> <p>var_dump() gibt dir auch die Zeichenanzahl im String aus. Stimmt die mir den von dir gezählten Zeichen überein, oder versteckt sich da vielleicht noch irgendein Sonderzeichen?</p> </blockquote> <p>Kannst du mir sagen, wo genau ich das hinpacken soll? Komme da auf keinen grünen Zweig.</p> Text in einzelne Wörter splitten klappt nicht korrekt Wed, 20 Feb 08 17:55:38 Z https://forum.selfhtml.org/self/2008/feb/20/text-in-einzelne-woerter-splitten-klappt-nicht-korrekt/1215578#m1215578 https://forum.selfhtml.org/self/2008/feb/20/text-in-einzelne-woerter-splitten-klappt-nicht-korrekt/1215578#m1215578 <p>echo $begrüßung;</p> <blockquote> <blockquote> <p>var_dump() gibt dir auch die Zeichenanzahl im String aus. Stimmt die mir den von dir gezählten Zeichen überein, oder versteckt sich da vielleicht noch irgendein Sonderzeichen?<br> Kannst du mir sagen, wo genau ich das hinpacken soll? Komme da auf keinen grünen Zweig.</p> </blockquote> </blockquote> <p>var_dump() packt man nicht hin. Man fügt es zum Zwecke einer Kontrollausgabe an der Stelle ein, an der man den Inhalt einer Variablen angezeigt bekommen möchte, damit man die eigene Vorstellung und die Wirklichkeit miteinander vergleichen kann.</p> <p>echo "$verabschiedung $name";</p> Text in einzelne Wörter splitten klappt nicht korrekt Wed, 20 Feb 08 18:14:44 Z https://forum.selfhtml.org/self/2008/feb/20/text-in-einzelne-woerter-splitten-klappt-nicht-korrekt/1215579#m1215579 https://forum.selfhtml.org/self/2008/feb/20/text-in-einzelne-woerter-splitten-klappt-nicht-korrekt/1215579#m1215579 <blockquote> <p>var_dump() packt man nicht hin. Man fügt es zum Zwecke einer Kontrollausgabe an der Stelle ein, an der man den Inhalt einer Variablen angezeigt bekommen möchte, damit man die eigene Vorstellung und die Wirklichkeit miteinander vergleichen kann.</p> </blockquote> <p>Okay ;)</p> <p>Nur das Problem:</p> <p>var_dump auf $liste bezogen (<code class="language-php"><span class="token punctuation">(</span><span class="token keyword">foreach</span><span class="token punctuation">(</span><span class="token variable">$liste</span> <span class="token keyword">as</span> <span class="token variable">$word</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">echo</span> <span class="token function">vardump</span><span class="token punctuation">(</span><span class="token variable">$word</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span></code>), liefert mir korrekte Ergebnisse. Also bei jedem Wort erhalte ich die korrekte Zeichenanzahl.</p> <p>var_dump auf $words bezogen (<code class="language-php"><span class="token punctuation">(</span><span class="token keyword">foreach</span><span class="token punctuation">(</span><span class="token variable">$words</span> <span class="token keyword">as</span> <span class="token variable">$word</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">echo</span> <span class="token function">vardump</span><span class="token punctuation">(</span><span class="token variable">$word</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span></code>), liefert mir natürlich ebenso korrekte Ergebnisse, aber eben für die abgeschnittenten Wortstummel.</p> <p>Wo die umlaute verloren gehen seh ich dadurch ja nicht!?</p> Text in einzelne Wörter splitten klappt nicht korrekt Wed, 20 Feb 08 18:59:10 Z https://forum.selfhtml.org/self/2008/feb/20/text-in-einzelne-woerter-splitten-klappt-nicht-korrekt/1215580#m1215580 https://forum.selfhtml.org/self/2008/feb/20/text-in-einzelne-woerter-splitten-klappt-nicht-korrekt/1215580#m1215580 <p>echo $begrüßung;</p> <blockquote> <p>var_dump auf $words bezogen (<code class="language-php"><span class="token punctuation">(</span><span class="token keyword">foreach</span><span class="token punctuation">(</span><span class="token variable">$words</span> <span class="token keyword">as</span> <span class="token variable">$word</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">echo</span> <span class="token function">vardump</span><span class="token punctuation">(</span><span class="token variable">$word</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span></code>), liefert mir natürlich ebenso korrekte Ergebnisse, aber eben für die abgeschnittenten Wortstummel.<br> Wo die umlaute verloren gehen seh ich dadurch ja nicht!?</p> </blockquote> <p>Wenn sie da offensichtlich schon verloren gegangen sind, dann musst du die Kontrollausgabe eher anwenden. Irgendeiner deiner vorherigen Verarbeitungsprozesse liefert dann ein falsches bzw. unerwartetes Ergebnis. Diesen verantwortlichen Ausdruck aufzuspüren ist das Ziel von Kontrollausgaben.</p> <p>Vielleicht ist in $words irgendwas altes drin. Du initialisierst ja dieses Array nicht explizit in deinem im Ausgangsposting zitierten Codeausschnitt. Warum da irgendwas anderes als in $liste drinstehen soll geht aus dem Code nicht hervor. Zum Nachvollziehen fehlen auch einige Variableninitialisierungen ($input, $focus).</p> <p>echo "$verabschiedung $name";</p> Text in einzelne Wörter splitten klappt nicht korrekt Wed, 20 Feb 08 20:35:03 Z https://forum.selfhtml.org/self/2008/feb/20/text-in-einzelne-woerter-splitten-klappt-nicht-korrekt/1215581#m1215581 https://forum.selfhtml.org/self/2008/feb/20/text-in-einzelne-woerter-splitten-klappt-nicht-korrekt/1215581#m1215581 <p>Also die Variablen sehen so aus:</p> <p>$input: per URL übergebener Suchbegriff<br> $focus: strlen($input);</p> <p><code class="language-php"><span class="token variable">$list</span></code> und <code class="language-php"><span class="token variable">$words</span></code> werden direkt vor dem geposteten Code als neue Arrays angelegt (<code class="language-php">$<span class="token operator">.</span><span class="token operator">.</span> <span class="token operator">=</span> <span class="token keyword">array</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code>), ebenso <code class="language-php"><span class="token variable">$word</span> <span class="token operator">=</span> <span class="token string double-quoted-string">""</span><span class="token punctuation">;</span></code>. Keines der Arrays oder eine Variable ändert sich danach, außer $focus (zwischen 1 und 10).</p> <p>Allerdings bin ich dem Problem vielleicht ein Stück näher. In der Textdatei habe ich einige Wörter gefunden, wo Umlaute nicht als HTML-Code ($xuml; sonder einfach als ä usw.) angegeben waren. Das habe ich geändert.</p> <p>Kurioserweise werden jetzt nur die Wortstücke ausgegeben, die hinter einem Umlaut stehen.</p> <p>Wurde also vorher von den Worten "Veränderung" und "höher" nur "Ver" und "her" ausgegeben, wird jetzt nur noch "her" ausgegeben.</p> <p>Das verwirrt mich ja eigentlich noch mehr ..</p> Text in einzelne Wörter splitten klappt nicht korrekt Wed, 20 Feb 08 20:37:47 Z https://forum.selfhtml.org/self/2008/feb/20/text-in-einzelne-woerter-splitten-klappt-nicht-korrekt/1215590#m1215590 https://forum.selfhtml.org/self/2008/feb/20/text-in-einzelne-woerter-splitten-klappt-nicht-korrekt/1215590#m1215590 <blockquote> <p>($xuml; ...</p> </blockquote> <p>muss natürlich "(&xuml; ..." heißen</p> Text in einzelne Wörter splitten klappt nicht korrekt Wed, 20 Feb 08 20:53:46 Z https://forum.selfhtml.org/self/2008/feb/20/text-in-einzelne-woerter-splitten-klappt-nicht-korrekt/1215582#m1215582 https://forum.selfhtml.org/self/2008/feb/20/text-in-einzelne-woerter-splitten-klappt-nicht-korrekt/1215582#m1215582 <p>echo $begrüßung;</p> <blockquote> <p>Das verwirrt mich ja eigentlich noch mehr ..</p> </blockquote> <p>Es gibt Tätigkeiten beim Programmieren, die kann man nur allein ausführen. Beispielsweise ist das das Suchen nach einem Fehler in einer konkreten Umgebung. Deswegen versuche ich dir ja die ganze Zeit, die Kontrollausgaben ans Herz zu legen. Finde die Stelle, an der der Wert vorher noch vollständig war, und hinterher kaputt ist. Wenn du dann ein Problem mit dem Verständnis dieses Programmteils hast, versuch es mit so wenig Code wie möglich nachzubilden, aber so, dass es vollständig nachvollziehbar ist. Das kannst du dann zur Diskussion stellen und irgendwer wird es dir erklären können.</p> <p>echo "$verabschiedung $name";</p> Text in einzelne Wörter splitten klappt nicht korrekt Wed, 20 Feb 08 22:09:51 Z https://forum.selfhtml.org/self/2008/feb/20/text-in-einzelne-woerter-splitten-klappt-nicht-korrekt/1215583#m1215583 https://forum.selfhtml.org/self/2008/feb/20/text-in-einzelne-woerter-splitten-klappt-nicht-korrekt/1215583#m1215583 <p>(schäm)</p> <p>Ich glaube, das Problem ist behoben.</p> <p>Dass "her" weiterhin auftaucht ist liegt daran, dass das Wort "her" einmal tatsächlich existiert ;)</p> <p>Also, vielen Dank für die Unterstützung - wäre mal wieder leichter gewesen, wenn ich aufgepasst hätte ...</p> <p>Nur eine Frage hab ich noch, weil du schriebst "Nebensächliches: Wieso stehen da eigentlich HTML-Schreibweisen in einem Nicht-HTML-Kontext?".</p> <p>Was genau meinst du damit, die Umlaute &xuml;? Wie sollte man da vorgehen? Ich habe damit leider immer meine Probleme und weiß nie so recht, wann ich jetzt ä und wann &auml; oder was auch imemr benutzen sollte.</p> Text in einzelne Wörter splitten klappt nicht korrekt Wed, 20 Feb 08 22:27:24 Z https://forum.selfhtml.org/self/2008/feb/20/text-in-einzelne-woerter-splitten-klappt-nicht-korrekt/1215584#m1215584 https://forum.selfhtml.org/self/2008/feb/20/text-in-einzelne-woerter-splitten-klappt-nicht-korrekt/1215584#m1215584 <p>Hi,</p> <blockquote> <p>Nur eine Frage hab ich noch, weil du schriebst "Nebensächliches: Wieso stehen da eigentlich HTML-Schreibweisen in einem Nicht-HTML-Kontext?".</p> <p>Was genau meinst du damit, die Umlaute &xuml;?</p> </blockquote> <p>Natuerlich. Die Daten, die du auswertest, scheinen nicht im Kontext HTML benutzt zu werden - also wieso verwendest in ihnen eine HTML-Kodierung?</p> <blockquote> <p>Wie sollte man da vorgehen?</p> </blockquote> <p>Eine passende Zeichenkodierung waehlen.</p> <blockquote> <p>Ich habe damit leider immer meine Probleme und weiß nie so recht, wann ich jetzt ä und wann &auml; oder was auch imemr benutzen sollte.</p> </blockquote> <p>Benutze ä, wann immer moeglich - und die Kruecke &auml; nur, wenn unumgaenglich (wenn also ä im HTML dargestellt werden muss, eine passende Zeichenkodierung, die dieses Zeichen enthaelt, aber nicht verwendet werden *kann*).</p> <p>MfG ChrisB</p> Text in einzelne Wörter splitten klappt nicht korrekt Thu, 21 Feb 08 12:07:32 Z https://forum.selfhtml.org/self/2008/feb/20/text-in-einzelne-woerter-splitten-klappt-nicht-korrekt/1215585#m1215585 https://forum.selfhtml.org/self/2008/feb/20/text-in-einzelne-woerter-splitten-klappt-nicht-korrekt/1215585#m1215585 <blockquote> <p>Natuerlich. Die Daten, die du auswertest, scheinen nicht im Kontext HTML benutzt zu werden - also wieso verwendest in ihnen eine HTML-Kodierung?</p> </blockquote> <p>Sollte ich also dann die Umlaute in der Textdatei ganz normal speichern und für den Fall, dass ich sie später auf meiner Seite ausgebe mit htmlentities($word) anzeigen lassen?</p> Text in einzelne Wörter splitten klappt nicht korrekt Thu, 21 Feb 08 12:28:58 Z https://forum.selfhtml.org/self/2008/feb/20/text-in-einzelne-woerter-splitten-klappt-nicht-korrekt/1215586#m1215586 https://forum.selfhtml.org/self/2008/feb/20/text-in-einzelne-woerter-splitten-klappt-nicht-korrekt/1215586#m1215586 <p>echo $begrüßung;</p> <blockquote> <blockquote> <p>Natuerlich. Die Daten, die du auswertest, scheinen nicht im Kontext HTML benutzt zu werden - also wieso verwendest in ihnen eine HTML-Kodierung?<br> Sollte ich also dann die Umlaute in der Textdatei ganz normal speichern und für den Fall, dass ich sie später auf meiner Seite ausgebe mit htmlentities($word) anzeigen lassen?</p> </blockquote> </blockquote> <p>Du musst für dich eine zu verwendende Kodierung festlegen. Diese Kodierung nimmst du beim Speichern von Dateien und beim Übertragen von Daten. Dem Empfänger gibst du über die üblichen Methoden bekannt, welche Kodierung er bekommt.</p> <p>HTML kennt eine Ersatzdarstellung mit Entities und numerischen Zeichenreferenzen. Die wird nur dann benötigt, wenn ein Zeichen in der verwendeten Kodierung nicht vorkommt, beispielsweise das €-Zeichen in ISO-8859-1. Ansonsten kannst du jedes Zeichen in der angegebenen Kodierung direkt notieren.</p> <p>echo "$verabschiedung $name";</p> Text in einzelne Wörter splitten klappt nicht korrekt Thu, 21 Feb 08 16:02:21 Z https://forum.selfhtml.org/self/2008/feb/20/text-in-einzelne-woerter-splitten-klappt-nicht-korrekt/1215587#m1215587 https://forum.selfhtml.org/self/2008/feb/20/text-in-einzelne-woerter-splitten-klappt-nicht-korrekt/1215587#m1215587 <p>Aber im Grunde wäre ich dann in jedem Fall auf der sicheren Seite, und ob ich jetzt <code class="language-php"><span class="token variable">$word</span></code> oder <code class="language-php"><span class="token function">htmlentities</span><span class="token punctuation">(</span><span class="token variable">$word</span><span class="token punctuation">)</span></code> ausgeben lasse, macht ja keine Umstände!?</p> Text in einzelne Wörter splitten klappt nicht korrekt Thu, 21 Feb 08 16:43:13 Z https://forum.selfhtml.org/self/2008/feb/20/text-in-einzelne-woerter-splitten-klappt-nicht-korrekt/1215588#m1215588 https://forum.selfhtml.org/self/2008/feb/20/text-in-einzelne-woerter-splitten-klappt-nicht-korrekt/1215588#m1215588 <p>echo $begrüßung;</p> <blockquote> <p>Aber im Grunde wäre ich dann in jedem Fall auf der sicheren Seite, und ob ich jetzt $word oder htmlentities($word) ausgeben lasse, macht ja keine Umstände!?</p> </blockquote> <p>Du bist dann auf einer besser gesicherten Seite, wenn du die verwendete Kodierung angibst. Denn dann wird dir mit hoher Wahrscheinlichkeit auch kein auf eine andere Default-Kodierung eingestellter Browser einen Strich durch die Rechnung machen, wenn er aufgrund der fehlenden Angabe irgendwas falsches verwendet. 100% Sicherheit kannst du aber auch nicht erreichen, nicht immer spielen die Browser alle Spielchen mit, die die Webanbieter mit ihnen zu treiben versuchen.</p> <p>Es ist immer sinnvoll, für kontextgerechte Ausgaben zu sorgen. Doch das erreichst du schon mit htmlspecialchars(). Zudem musst du auch für die richtige Anwendung der Funktion htmlentities() wissen, in welcher Kodierung deine Daten vorliegen. Denn auch die kann nicht erraten, in welcher Kodierung die ihr übergebenen Daten vorliegen. Wenn du also sowieso schon wissen musst, welche Kodierung vorliegt, kannst du sie doch auch gleich richtig deklarieren und die unnötigen Entities vermeiden.</p> <p>echo "$verabschiedung $name";</p> Text in einzelne Wörter splitten klappt nicht korrekt Thu, 21 Feb 08 23:58:22 Z https://forum.selfhtml.org/self/2008/feb/20/text-in-einzelne-woerter-splitten-klappt-nicht-korrekt/1215589#m1215589 https://forum.selfhtml.org/self/2008/feb/20/text-in-einzelne-woerter-splitten-klappt-nicht-korrekt/1215589#m1215589 <p>Ich seh schon, mit dem Thema muss ich mich noch einmal ernsthaft auseinandersetzen, das ist ja quasi wie ein Buch mit sieben Siegeln :)</p> <p>Also nochmals vielen Dank für die Hilfe - wenn ich nicht weiter weiß, weiß ich ja wo ich fragen muss.</p> Text in einzelne Wörter splitten klappt nicht korrekt Wed, 20 Feb 08 18:04:19 Z https://forum.selfhtml.org/self/2008/feb/20/text-in-einzelne-woerter-splitten-klappt-nicht-korrekt/1215592#m1215592 https://forum.selfhtml.org/self/2008/feb/20/text-in-einzelne-woerter-splitten-klappt-nicht-korrekt/1215592#m1215592 <blockquote> <p>Hallo,<br> ich kann dir ledier nicht helfen aber ich würde gerne wissen was folgende Zeilen machen?</p> </blockquote> <p>$prozent berechnet, zu wieviel Prozent das gesuchte Wort ($input) mit dem jeweiligen Wort ($word) aus dem Array übereinstimmt - einfach, damit ich später danach sortieren kann.</p> <p>Die if-Abfrage selektiert die Wörter ($word) nach ihrer Übereinstimmung mit dem Suchbegriff ($input). Nur wenn die Übereinstimmung mindestens 50 % beträgt und der Lev.wert weniger als $focus Zeichen beträgt, wird das Wort überhaupt als Alternative vorgeschlagen. Hintergrund: bei längeren Wörtern ist die Wahrscheinlichkeit, dass der Lev.wert größer ist höher, also gibts hier nen größeren $focus.</p> <p>Ich hoffe, dass ich mir da keinen Unsinn ausgedacht habe :D - die Resultate sehen bisher aber ganz gut aus.</p>