phpbar.de logo

Mailinglisten-Archive

[php] RE: keywords extrahieren

[php] RE: keywords extrahieren

Christian Machmeier php_(at)_phpcenter.de
Mon, 1 Jul 2002 11:00:13 +0200


Hallo Enno,

> Yupp.- ich möchte mir einfach das ewige schreiben von Meta-Keywords
> ersparen, und sie deshalb aus dem Inhalt der Seite extrahieren.

Nachvollziehbar:) Das geht mir nicht anders.
Probleme hatte ich dabei bisher nur bei dem Umstand, dass die Keywords
dummerweise ja vor dem eigentlichen Text der Seite kommen. Da kamen
dann als Lösungen, die Erfassung der Keywords separat in die DB etc.

> Bisher habe ich folgendes:
>
> <?php
> $string = implode("",(_(at)_file("keywords.htm")));
> $string = ereg_replace('<([^>]|\n)*>', '', $string);
> $array = explode(" ",$string);
> for($x=0;$x<count($array);$x++){
>    echo $array[$x] . ", ";
> }
> ?>
>
> Das funzt auch. Nun benötige ich lediglich noch einen Regulären
> Ausdruck, der mir alle Wörter <=3 Buchstaben russchmeisst, alle
> Leerräume und alle kleingeschriebenen Wörter. Vielleicht kannst Du
> mir da ja helfen.
> Die Performance spielt ersteinmal keine Rolle.

Leider kenn' ich mich RegExen noch überhaupt nicht so aus.
Aber ich hab' grad mal einen Blick in die PHPMagazine geworfen, da
sind ja zwei riesige Artikel zum PCRE- bzw. POSIX-RegExe drin.

"Wörter mit mehr als 3 Buchstaben"
    Ich würde versuchen nicht mit dem RegEx, sondern PHP den Nicht-
    ausdruck zu finden. Also: [a-z][a-z][a-z] sollte drei beliebige
    kleine Buchstaben nacheinander finden und [[:space:]] den nach-
    folgenden Whitespace. Dein RegEx matcht also.
    if ($match)
        { echo "ich ignoriere dich"; }
    else
        { echo "ausgabe"; }

"Leeräume"
    Naja mit [[:space:]] eben.

"kleingeschriebene Wörter"
    ..würde ich versuchen mit [[:lower:]] (entspricht [a-z]) zu
    finden.

mfg    -> christian


php::bar PHP Wiki   -   Listenarchive